Habilitar el paralelismo de consultas
Las consultas no pueden aprovechar el paralelismo a no ser que habilite el proceso paralelo.
Antes de empezar
Db2 no contempla utilizar el paralelismo de CP si se declara un cursor como WITH HOLD y se enlaza la aplicación con el aislamiento RR o RS.
Procedimiento
Para habilitar el proceso en paralelo:
- Para SQL estático, especifique DEGREE(ANY) en BIND o REBIND.Esta opción de vinculación solo afecta a SQL estático y no habilita el paralelismo para sentencias dinámicas.
- Para SQL dinámico, establezca para el registro especial CURRENT DEGREE el valor 'ANY'.
Puede establecer el registro especial con la siguiente sentencia de SQL:
SET CURRENT DEGREE='ANY';- También puede cambiar el valor predeterminado del registro especial de 1 a ANY para todo el subsistema Db2 modificando el valor del parámetro de subsistema CDSSRDEF.
El valor del registro especial solo afecta a las sentencias dinámicas. No tiene ningún efecto sobre las sentencias de SQL estático. También hay que asegurarse de que el paralelismo no esté inhabilitado para el plan, paquete o ID de autorización en el RLST. - Si vincula con aislamiento CS, elija la opción CURRENTDATA(NO),
si es posible.Esta opción puede mejorar el rendimiento en general, pero también garantiza que Db2 contemple el paralelismo para cursores ambiguos. Si se enlaza con CURRENTDATA(YES) y Db2 no puede especificar si el cursor es de solo lectura, Db2 no contempla el paralelismo. Cuando un cursor es de sólo lectura, es mejor especificar de forma explícita que el cursor es de sólo lectura. Se puede emplear la cláusula FOR FETCH ONLY o FOR READ ONLY en la sentencia DECLARE CURSOR.
- Especifique un umbral virtual secuencial paralelo de la agrupación de almacenamiento intermedio (VPPSEQT) que sea suficiente para ofrecen un espacio adecuado de agrupación de almacenamiento intermedio para el proceso en paralelo.Si habilita el proceso paralelo, se pueden activar varias tareas paralelas si Db2 estima que se pueden reducir los tiempos transcurridos altos.
- Para clasificaciones en paralelo, asigne suficientes archivos de trabajo para mantener el rendimiento.Db2 también considera únicamente operaciones de E/S paralelas si declara un cursor WITH HOLD y enlaza con el aislamiento RR o RS.
- Para consultas complejas, ejecute la consulta en paralelo dentro de un miembro de un grupo de compartimiento de datos.
- Limite el grado de paralelismo. Puede limitar el número máximo de tareas paralelas que genera Db2 utilizando los siguientes métodos:
- Para la mayoría de las formas de paralelismo, establezca el valor del parámetro del subsistema PARAMDEG. Si los recursos del sistema son limitados, el mejor valor de PARAMDEG es 1-2 veces el número de CPU en línea. Sin embargo, no cambie el valor PARAMDEG para desactivar el paralelismo. En su lugar, utilice el parámetro de enlace DEGREE o el registro especial CURRENT DEGREE para inhabilitar el paralelismo. Para más información, consulte el campo MAX DEGREE (parámetro del subsistema PARAMDEG ).
- Para el paralelismo DPSI, establezca el valor del parámetro PARAMDEG_DPSI. Para más información, consulte el campo MAX DEGREE FOR DPSI (parámetro del subsistema PARAMDEG_DPSI ).