Ajuste del proceso en paralelo

Para mejorar la utilización del proceso en paralelo, asegúrese de que las agrupaciones de almacenamiento intermedio estarán disponibles y reduzca al mínimo la contienda lógica y física y otras situaciones que podrían reducir el grado de paralelismo.

Procedimiento

Iniciar la información de la interfaz de programación específica del programa.Para ajustar el procesamiento paralelo, utilice cualquiera de los siguientes enfoques:

  • Aumente la disponibilidad de las agrupaciones de almacenamiento intermedio.
    Dependiendo de la disponibilidad de la memoria intermedia, Db2 podría reducir el grado de paralelismo (véaseRAN REDUCEDen el ejemplo del informe de seguimiento contable) o volver a un plan secuencial antes de ejecutar el grupo paralelo (SEQ - NO BUFen el ejemplo de informe de seguimiento contable).
    1. Consulte la sección QW0221C del IFCID 0221 para determinar en qué agrupaciones de almacenamientos intermedios falta almacenamiento.
    2. Utilice el mandato ALTER BUFFERPOOL para aumentar los valores de los parámetros siguientes:
      • VPSEQT, el umbral de robo secuencial
      • VPPSEQT, umbral secuencial paralelo
    3. Si el aumento de los parámetros de umbral paralelo no mejora el grado de paralelismo, utilice el mandato ALTER BUFFERPOOL para aumentar el tamaño total de las agrupaciones de almacenamientos intermedios (VPSIZE).
      Utilice información del rastreo estadístico y el rastreo de fórmulas siguiente para determinar la cantidad de espacio de almacenamiento intermedio que necesita:
      (QBSTJIS / QBSTPQF) × 32 = buffer increase value
      QBSTJIS es el número total de secuencias de E/S de captación previa solicitadas que fueron denegadas debido a una falta de almacenamiento en la agrupación de almacenamiento intermedio. (Existe una secuencia de E/S para cada tarea paralela). QBSTPQF es el número total de veces que Db2 no pudo asignar suficientes páginas de búfer para permitir que un grupo paralelo se ejecute en la medida prevista.
      Por ejemplo, suponga que el valor de QBSTJIS es 100.000 y QBSTPQF es 2500, y aplique la fórmula:
      (100,000 / 2500) × 32 = 1280

      En este caso, utilizará ALTER BUFFERPOOL para aumentar el valor actual de VPSIZE en 2560 almacenamientos intermedios y atenuar el problema de la degradación del grado de paralelismo. Puede utilizar el mandato DISPLAY BUFFERPOOL para ver el valor actual del parámetro VPSIZE.

  • Reduzca al mínimo la contienda lógica.
    Por ejemplo, en una unión de bucles anidados, la tabla interna puede estar en un espacio de tabla particionado o no particionado, pero es más probable que Db2 utilice una operación de unión paralela cuando la tabla externa existe en un espacio de tabla particionado.
  • Reduzca al mínimo el uso de la contienda física; para ello, coloque las particiones de datos en dispositivos físicos por separado y mantenga el número de particiones por debajo del número de vías de acceso internas del controlador.
  • Compruebe si hay cursores actualizables.
    En tiempo de ejecución, Db2 podría determinar que un cursor ambiguo es actualizable. Esto aparece en elSEQ - CURSORcampo en el informe de seguimiento contable de ejemplo
  • Compruebe si se dispone del soporte de hardware y de software adecuado.
    Si no tiene la función de ordenación de hardware en tiempo de ejecución y se necesita una combinación de ordenación y fusión, verá un valor en elSEQ - NO ESA.
  • Compruebe si la configuración de los procesadores en línea ha cambiado.
    Si hay menos procesadores en línea disponibles en tiempo de ejecución que en tiempo de enlace, Db2 reformula el grado de paralelismo para aprovechar al máximo la potencia de procesamiento actual. Esta reformulación se indica mediante un valor en elREFORM PARAL-CONFIGen el informe de contabilidad.

    En el ejemplo siguiente se muestra parte de un informe de rastreo de contabilidad.

    Figura 1. Una muestra parcial que muestra campos de paralelismo en el informe de seguimiento contable de la e 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