Platform Issues 平台问题

2023-11-23 07:04
文章标签 问题 平台 platform issues

本文主要是介绍Platform Issues 平台问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Set processing does not behave the same on every database platform. On some platforms, set processing can encounter performance breakdowns. Some platforms do not optimize update statements that include subqueries.

集处理在每个数据库平台上的行为并不相同。在某些平台上,set处理可能会遇到性能故障。有些平台不优化包含子查询的更新语句。

For example, environments that are accustomed to updates with subqueries get all the qualifying department IDs from the Department table and then, using an index designed by an application developer, update the Personnel table. Other platforms read through every employee row in the Personnel table and query the Department table for each row.

例如,习惯于使用子查询进行更新的环境从Department表中获取所有符合条件的部门ID,然后使用应用程序开发人员设计的索引更新Personnel表。其他平台读取Personnel表中的每一个employee行,并查询Department表中的每一行。

On platforms where these types of updates are a problem, try adding some selectivity to the outer query.

In the following example, examine the SQL in the Before section and then notice how it is modified in the After section to run smoothly on all platforms. You can use this approach to work around platforms that have difficulty with updates that include subqueries.

在这些类型的更新是一个问题的平台上,请尝试为外部查询添加一些选择性。在下面的示例中,检查“之前”部分中的SQL,然后注意如何在“之后”部分修改它以在所有平台上顺利运行。您可以使用这种方法来解决那些在更新包含子查询时遇到困难的平台。

Note: In general, set processing capabilities vary by database platform. The performance characteristics of each database platform differ with more complex SQL and set processing constructs. Some database platforms allow additional set processing constructs that enable you to process even more data in a setbased manner. If performance needs improvement, you must tailor or tune the SQL for your environment. You should be familiar with the capabilities and limitations of your database platform and be able to recognize, through tracing and performance results, the types of modifications you need to incorporate with the basic set processing constructs described.

附注:一般来说,集合处理能力因数据库平台而异。每个数据库平台的性能特征因更复杂的SQL和集合处理构造而不同。一些数据库平台允许附加的集合处理构造,使您能够以基于集合的方式处理更多的数据。如果需要改进性能,则必须为环境定制或调优SQL。您应该熟悉您的数据库平台的功能和限制,并且能够通过跟踪和性能结果来识别您需要与所描述的基本集合处理构造合并的修改类型。

Basic version:

基本版本:

UPDATE PS_REQ_LINE

SET SOURCE_STATUS = 'I'

WHERE

EXISTS

(SELECT 'X' FROM PS_PO_ITM_STG STG

WHERE

STG.PROCESS_INSTANCE =%BIND(PROCESS_INSTANCE)  AND

STG.PROCESS_INSTANCE =PS_REQ_LINE.PROCESS_INSTANCE AND

STG.STAGE_STATUS = 'I'  AND

STG.BUSINESS_UNIT = PS_REQ_LINE.BUSINESS_UNIT AND

STG.REQ_ID = PS_REQ_LINE.REQ_ID AND

STG.REQ_LINE_NBR = PS_REQ_LINE.LINE_NBR)

               •     Optimized for platform compatibility:

针对平台兼容性进行了优化:

UPDATE PS_REQ_LINE

SET SOURCE_STATUS = 'I'

WHERE

PROCESS_INSTANCE = %BIND(PROCESS_INSTANCE) AND

 EXISTS

(SELECT 'X' FROM PS_PO_ITM_STG STG

WHERE

STG.PROCESS_INSTANCE =%BIND(PROCESS_INSTANCE)  AND

STG.PROCESS_INSTANCE =PS_REQ_LINE.PROCESS_INSTANCE AND

STG.STAGE_STATUS = 'I'  AND

STG.BUSINESS_UNIT = PS_REQ_LINE.BUSINESS_UNIT AND

STG.REQ_ID = PS_REQ_LINE.REQ_ID AND

STG.REQ_LINE_NBR = PS_REQ_LINE.LINE_NBR)


Note: This example assumes that the transaction table (PS_REQ_LINE) has a PROCESS_INSTANCE column to lock rows that are in process. This is another example of designing your database with batch performance and set processing in mind.

附注:本例假设事务表(PS_REQ_LINE)有一个PROCESS_INSTANCE列来锁定正在处理的行。这是在设计数据库时考虑到批处理性能和设置处理的另一个示例。

This modification enables the system to limit its scan through PS_REQ_LINE to only those rows that the program is currently processing. At the same time, it enables a more set-friendly environment to first scan the smaller staging table and then update the larger outer table.

这个修改使系统能够通过PS_REQ_LINE将其扫描限制为仅扫描程序当前正在处理的那些行。同时,它支持一个设置更友好的环境,首先扫描较小的分段表,然后更新较大的外部表。

这篇关于Platform Issues 平台问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/416205

相关文章

详谈redis跟数据库的数据同步问题

《详谈redis跟数据库的数据同步问题》文章讨论了在Redis和数据库数据一致性问题上的解决方案,主要比较了先更新Redis缓存再更新数据库和先更新数据库再更新Redis缓存两种方案,文章指出,删除R... 目录一、Redis 数据库数据一致性的解决方案1.1、更新Redis缓存、删除Redis缓存的区别二

oracle数据库索引失效的问题及解决

《oracle数据库索引失效的问题及解决》本文总结了在Oracle数据库中索引失效的一些常见场景,包括使用isnull、isnotnull、!=、、、函数处理、like前置%查询以及范围索引和等值索引... 目录oracle数据库索引失效问题场景环境索引失效情况及验证结论一结论二结论三结论四结论五总结ora

element-ui下拉输入框+resetFields无法回显的问题解决

《element-ui下拉输入框+resetFields无法回显的问题解决》本文主要介绍了在使用ElementUI的下拉输入框时,点击重置按钮后输入框无法回显数据的问题,具有一定的参考价值,感兴趣的... 目录描述原因问题重现解决方案方法一方法二总结描述第一次进入页面,不做任何操作,点击重置按钮,再进行下

解决mybatis-plus-boot-starter与mybatis-spring-boot-starter的错误问题

《解决mybatis-plus-boot-starter与mybatis-spring-boot-starter的错误问题》本文主要讲述了在使用MyBatis和MyBatis-Plus时遇到的绑定异常... 目录myBATis-plus-boot-starpythonter与mybatis-spring-b

mysql主从及遇到的问题解决

《mysql主从及遇到的问题解决》本文详细介绍了如何使用Docker配置MySQL主从复制,首先创建了两个文件夹并分别配置了`my.cnf`文件,通过执行脚本启动容器并配置好主从关系,文中还提到了一些... 目录mysql主从及遇到问题解决遇到的问题说明总结mysql主从及遇到问题解决1.基于mysql

如何测试计算机的内存是否存在问题? 判断电脑内存故障的多种方法

《如何测试计算机的内存是否存在问题?判断电脑内存故障的多种方法》内存是电脑中非常重要的组件之一,如果内存出现故障,可能会导致电脑出现各种问题,如蓝屏、死机、程序崩溃等,如何判断内存是否出现故障呢?下... 如果你的电脑是崩溃、冻结还是不稳定,那么它的内存可能有问题。要进行检查,你可以使用Windows 11

如何安装HWE内核? Ubuntu安装hwe内核解决硬件太新的问题

《如何安装HWE内核?Ubuntu安装hwe内核解决硬件太新的问题》今天的主角就是hwe内核(hardwareenablementkernel),一般安装的Ubuntu都是初始内核,不能很好地支... 对于追求系统稳定性,又想充分利用最新硬件特性的 Ubuntu 用户来说,HWEXBQgUbdlna(Har

MAVEN3.9.x中301问题及解决方法

《MAVEN3.9.x中301问题及解决方法》本文主要介绍了使用MAVEN3.9.x中301问题及解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录01、背景02、现象03、分析原因04、解决方案及验证05、结语本文主要是针对“构建加速”需求交

Nginx、Tomcat等项目部署问题以及解决流程

《Nginx、Tomcat等项目部署问题以及解决流程》本文总结了项目部署中常见的four类问题及其解决方法:Nginx未按预期显示结果、端口未开启、日志分析的重要性以及开发环境与生产环境运行结果不一致... 目录前言1. Nginx部署后未按预期显示结果1.1 查看Nginx的启动情况1.2 解决启动失败的

CentOS系统使用yum命令报错问题及解决

《CentOS系统使用yum命令报错问题及解决》文章主要讲述了在CentOS系统中使用yum命令时遇到的错误,并提供了个人解决方法,希望对大家有所帮助,并鼓励大家支持脚本之家... 目录Centos系统使用yum命令报错找到文件替换源文件为总结CentOS系统使用yum命令报错http://www.cppc