Db2 并行处理输入/输出、查询和索引AS400

Db2 并行处理输入/输出、查询和索引AS400,db2,ibm-midrange,rpgle,rpg,Db2,Ibm Midrange,Rpgle,Rpg,IBM V6.1 使用I系统导航器和单击系统值时,将显示以下内容 默认情况下,选择了不允许并行处理 当您选择多个进程时,会对程序中的处理产生什么影响?我们分配了rpgiv程序和正在执行的sql查询,我认为这将提高性能 基本上,我想在生产环境中启用此功能,但不确定这样做是否会破坏任何东西,例如并行运行的不同程序的输入或输出,或者数据无序 我做了一些研究: 并理解每个选项,但我不知道将其从默认更改为多个选项的风险。首先,为了充分利用*MAX和*OPTIMIZE,您需要一个具有多个核心的系统(针对

IBM V6.1

使用I系统导航器和单击系统值时,将显示以下内容

默认情况下,选择了
不允许并行处理

当您选择多个进程时,会对程序中的处理产生什么影响?我们分配了rpgiv程序和正在执行的sql查询,我认为这将提高性能

基本上,我想在生产环境中启用此功能,但不确定这样做是否会破坏任何东西,例如并行运行的不同程序的输入或输出,或者数据无序

我做了一些研究:


并理解每个选项,但我不知道将其从默认更改为多个选项的风险。

首先,为了充分利用*MAX和*OPTIMIZE,您需要一个具有多个核心的系统(针对IBM I/DB2启用)以及DB2对称多处理(SMP)(57xx-SS1选项26)已安装许可证程序;因此,允许系统使用SMP进行查询和索引构建

对于*IO,系统可以通过同步多线程(SMT)使用多个任务,即使在单核POWER 5或更高版本的机箱上也是如此。SMT通过处理器多任务(QPRCMLTTSK)系统值启用

您不太可能通过更改值来“破坏”任何内容。只要您的应用程序没有对结果集排序做出错误的假设。例如,CPYXXIMPF在后台使用SQL;如果使用除*NONE之外的任何内容,则DB2表中的行的顺序可能与导入文件中的行的顺序不同

您肯定会增加CPU使用率。这不是一件坏事;除非你目前定期提高90%以上的CPU使用率。如果您只使用了50%的CPU,那么利用SMT/SMP来提供更好的响应时间可能是一件好事,即使它将CPU利用率提高到60%

话虽如此,这里有一个关于它是一个问题的故事

请注意,在上述情况下,OP在登录时预先构建工作表,以便在使用时尽量减少等待时间。20年前的单线程系统是个好主意。今天,另一种选择是利用SMP/SMT,只在需要时构建所需的内容


正如您在评论中所指出的,这种更改很难在非生产环境中测试,因为DEV&test中的工作负载是不同的。因此,在变更前后收集良好的性能数据非常重要。你也可以考虑移动它的阶段*NO---**IO-> *优化,然后*max,如果你愿意的话。如果您有定期的月末作业,我会在每个级别上至少花一个月的时间。

并行性的影响主要取决于正在执行的工作负载,因此确定启用它的影响的唯一可靠方法是在您的工作负载上测试它(您确实有一个测试环境,不是吗)。是的,我有一个开发和测试,但工作负载与生产中的工作负载不同,因此我在开发和运行SQL中启用了它,但看不出有什么不同。在生产中启用它是否存在风险?