并行处理 input/output、查询和索引 AS400

Parallel processing input/output, queries, and indexes AS400

IBM V6.1

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

默认选择 Do not allow parallel processing

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

基本上我想在生产环境中打开它,但不确定这样做是否会破坏任何东西,例如不同程序的输入或输出 运行 并行或数据乱序?

我确实做了一些研究:

https://publib.boulder.ibm.com/iseries/v5r2/ic2924/index.htm?info/rzakz/rzakzqqrydegree.htm

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

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

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

启用 SMT

您不太可能通过更改值来 "break" 任何事情。只要您的应用程序不对结果集排序做出错误的假设。例如,CPYxxxIMPF 在幕后使用 SQL;除了 *NONE 之外,您最终可能会在 DB2 table 中以与导入文件中的行不同的顺序结束这些行。

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

话虽如此,这是一个问题的故事... http://archive.midrange.com/midrange-l/200304/msg01338.html

请注意,在上述情况下,OP 在登录时进行了 table 的预构建工作,以尽量减少使用它们时的等待时间。 20 年前使用单线程系统的好主意。今天,替代方案是利用 SMP/SMT 并仅在需要时构建所需的内容。

正如您在评论中指出的那样,这种更改很难在非生产环境中进行测试,因为开发和测试中的工作负载不同。因此,在变更前后收集良好的性能数据非常重要。如果您愿意,您还可以考虑将其移动到 *NONE --> *IO --> *OPTIMIZE 和 *MAX 阶段。如果您有周期性的月末工作,我会在每个级别上至少花一个月的时间。