监控并行操作

您可以通过 Db2 监控并联的使用情况。

关于本任务

Db2 用于访问数据的并行任务数量在绑定时确定,并在执行查询时再次调整。

绑定时间
在绑定时, Db2 从目录中收集分区统计信息,估算处理分区的处理器周期成本,并确定并行任务的最佳数量,以实现最短的运行时间。

当计划学位超过在线CP的数量时,查询可能不完全受处理器限制。 相反,由于I/O的限制,分区数量可能会接近。 一般来说,查询的I/O约束越强,并行度就越接近分区数。

一般来说,查询对处理器的依赖程度越高,并行度与在线CP的数量就越相关。 然而,并行度可以超过CP的数量。 默认的并行度是CP数量的两倍。 当并行子任务之间的工作量分配不均时,并行度大于CP的数量是有益的。

为了帮助 Db2 确定最佳的并行度,请使用RUNSTATS实用程序来保持统计数据的最新状态。

您可以在PLAN_TABLE的ACCESS_DEGREE和JOIN_DEGREE列中找到所需的并行度。

执行时间
对于每个并行组,并行操作可以以较低的程度执行,或者降级为顺序操作,原因如下:
  • 可用虚拟缓冲池空间量
  • 主机变量值
  • 硬件排序辅助功能的可用性
  • 模糊的光标
  • 在线处理器数量或配置发生变化

过程

要监控并行操作,请使用以下方法之一:

  1. 使用“显示缓冲池”报告查看缓冲池满足并行操作的能力。
    DSNB440I = PARALLEL ACTIVITY -
                PARALLEL REQUEST =      282  DEGRADED PARALLEL=        5
    PARALLEL REQUEST字段显示, Db2 正在为282个并行组协商缓冲池资源。 在这282个小组中,只有5个因缓冲池资源不足而降级。 DEGRADED PARALLEL字段中的大量数据可能表明您的子系统没有足够的缓冲区可用于并行处理。
  2. 使用DISPLAY THREAD命令。
    状态栏中包含并行任务的PT。 所有并行任务都会在相应的起始线程之后立即显示。
  3. 使用 Db2 追踪:
    • 统计跟踪功能可显示并行组未按计划并行度运行或按顺序运行的情况。 这两种情况都表明,某些查询无法获得最佳响应时间。
    • 开始特定程序编程接口信息。您可以使用会计追踪来确保并行查询满足其响应时间目标。 Db2 将任务会计纳入原始任务的会计记录中。 IBM® OMEGAMON® for Db2 Performance Expert on z/OS® 还汇总了并行查询生成的所有会计记录,并将其作为一条逻辑会计记录呈现。

      IBM OMEGAMON for Db2 Performance Expert on z/OS 分别显示初始任务的用时和所有并行任务的累计用时。

      如下会计追踪记录摘录所示,CP CPU TIME-AGENT是最初的任务时间,而CP CPU TIME-PAR.TASKS是并行任务的累计处理时间。

      图 1。 IBM OMEGAMON for Db2 Performance Expert on z/OS 会计追踪报告中显示平行字段的部分示例
      TIMES/EVENTS  APPL (CLASS 1)   DB2 (CLASS 2)    CLASS 3 SUSP.   ELAPSED TIME
      ------------  --------------  --------------    --------------  ------------
      ELAPSED TIME       32.578741       32.312218    LOCK/LATCH         25.461371
       NONNESTED         28.820003       30.225885    SYNCHRON. I/O       0.142382
       STORED PROC        3.758738        2.086333     DATABASE I/O       0.116320
       UDF                0.000000        0.000000     LOG WRTE I/O       0.026062
       TRIGGER            0.000000        0.000000    OTHER READ I/O   3:00.404769
                                                      OTHER WRTE I/O      0.000000
      CPU CP TIME      1:29.695300     1:29.644026    SER.TASK SWTCH      0.000000
       AGENT              0.225153        0.178128     UPDATE COMMIT      0.000000
        NONNESTED         0.132351        0.088834     OPEN/CLOSE         0.000000
        STORED PRC        0.092802        0.089294     SYSLGRNG REC       0.000000
        UDF               0.000000        0.000000     EXT/DEL/DEF        0.000000
        TRIGGER           0.000000        0.000000     OTHER SERVICE      0.000000
       PAR.TASKS       1:29.470147     1:29.465898    ARC.LOG(QUIES)      0.000000
        ⋮
      …            QUERY PARALLEL.     TOTAL
                     ---------------  --------
                     MAXIMUM MEMBERS         1
                     MAXIMUM DEGREE         10
                     GROUPS EXECUTED         1
                      RAN AS PLANNED         1
                      RAN REDUCED            0
                      ONE  COOR=N            0
                      ONE  ISOLAT            0
                      ONE  DCL TTABLE        0
                      SEQ - CURSOR           0
                      SEQ - NO ESA           0
                      SEQ - NO BUF           0
                      SEQ - ENCL.SER.        0
                     MEMB SKIPPED(%)         0
                     DISABLED BY RLF        NO
                     REFORM PARAL-CONFIG     0
                     REFORM PARAL-NO BUF     0

      正如报告所示,CPU TIMEI/O WAIT TIME大于经过的时间。 处理器和暂停时间可能会大于实际时间,因为这两个时间是从多个并行任务中累积而来的。 如果将处理器时间和悬挂时间连续累加,则实际时间将少于这两项时间之和。

      如果您有同一线程在没有并行的情况下运行的基准会计数据,那么当查询并行运行时,运行时间和处理器时间不能更长。 如果它们较大,或者响应时间较差,则需要检查单个任务的会计数据。 使用 IBM OMEGAMON for Db2 Performance Expert on z/OS 记录跟踪功能,查看您要检查的线程的IFCID 0003记录。 如果您需要更多信息来确定响应时间问题的原因,请使用性能跟踪。

    • 如果您发现并行查询存在潜在问题,可以使用性能跟踪进行进一步分析。 您可以参考IFCID 0221中的字段 QW0221AD ,该字段由宏 DSNDQW03 映射。 0221记录还提供了用于划分数据的关键范围的信息。

      IFCID 0222 包含每个 SQL 查询中每个并行任务和每个并行组的运行时间信息。 IBM OMEGAMON for Db2 Performance Expert on z/OS 在SQL活动跟踪中显示此信息。

      如果您的查询因缓冲池资源不足而按顺序运行或运行速度降低,IFCID 0221的 QW0221C 字段会显示受限制的缓冲池。

    结束特定程序编程接口信息。