Insertar algoritmo 2

IAG2 (Insertar algoritmo 2) puede aumentar el rendimiento de las sentencias INSERT, reducir el registro y reducir el tiempo transcurrido de clase 2 y el tiempo de CPU de clase 2 en determinadas condiciones.

Los tipos de cargas de trabajo que más se benefician de IAG2 incluyen las cargas de trabajo transaccionales tradicionales que insertan millones de filas simultáneamente en una o más tablas de Db2® y los nuevos tipos de cargas de trabajo que contienen millones de puntos de datos (por ejemplo, las aplicaciones IoT (Internet de las cosas), como por ejemplo, aplicaciones relacionadas con la meteorología que recopilan simultáneamente un volumen enorme de datos desde diferentes ubicaciones). Las cargas de trabajo que constan de varios trabajos de proceso por lotes que insertan datos simultáneamente para el mismo conjunto de tablas son los que van a experimentar las mejoras de rendimiento más importantes.

Específicamente, IAG2 ofrece las siguientes ventajas:
  • Permite insertar rápidamente un gran volumen de datos, lo que hace que los datos estén disponibles para el consumo inmediato por consultas ad hoc
  • Elimina la contención de páginas de datos que puede producirse cuando se suministra la misma ubicación para insertar una fila a varios agentes
  • Elimina la contención de correlación de espacio que normalmente se puede producir cuando se insertan varios agentes al final de las tablas o particiones

Inicio del cambioIAG2 reduce la contención de espacio de cargas de trabajo que insertan un gran volumen de datos preasignando páginas de datos. IAG2 acumula números de página de páginas de datos que tienen suficiente espacio para insertar nuevas filas en un área llamada algoritmo de inserción 2 tubería de página en memoria. Db2 añade nuevos números de página al tubo de página según sea necesario. Cuando es necesario insertar una fila, Db2 selecciona un número de página de la tubería de páginas, lo que garantiza que haya espacio suficiente para la nueva fila.fin del cambio

¿Cuándo se utiliza IAG2?

Inicio del cambioIAG2 se puede habilitar para un espacio de tabla específico especificando la cláusula INSERT ALGORITHM 2 de la sentencia CREATE TABLESPACE o ALTER TABLESPACE. El parámetro de subsistema DEFAULT_INSERT_ALGORITHM controla la habilitación de IAG2 a nivel de subsistema.fin del cambio

IAG2 sólo se utiliza con espacios de tabla universales que utilizan la opción MEMBER CLUSTER. Las operaciones de inserción en espacios de tabla no universales y espacios de tablas universales que no utilizan la opción MEMBER CLUSTER utilizan IAG1 (Insertar algoritmo 1). IAG2 también da soporte a LOAD SHRLEVEL CHANGE para espacios de tablas universales que utilizan MEMBER CLUSTER.

En determinadas condiciones, IAG2 no se utiliza aunque se establezca explícitamente y se cumplan todas las condiciones necesarias. Por ejemplo, si se bloquea una tabla o un espacio de tabla o si se produce un escalabilidad de bloqueos, no se utiliza IAG2 y la aplicación vuelve a utilizar IAG1.

En las situaciones en las que IAG2 se inhabilita y una operación de inserción vuelve a utilizar IAG1, se emite el mensaje DSNI055I. Este mensaje y sus códigos de razón adjuntos proporcionan información detallada sobre las condiciones que han hecho que la sentencia INSERT vuelva a utilizar IAG1.

Casos de uso que producen los mayores beneficios de rendimiento

Aunque IAG2 puede mejorar el rendimiento de inserciones simultáneas de gran volumen, algunas situaciones reportan mayores beneficios que otras.

Por ejemplo, el beneficio más importante de rendimiento se puede ver cuando un gran número de trabajos insertan datos simultáneamente en la misma tabla o el mismo conjunto de tablas. Como cada hebra tiene preasignada una página de datos diferente en la que insertar datos, se eliminan los retrasos asociados a la página de datos y la contención de correlación de espacio.

Figura 1. Un gran número de trabajos de proceso por lotes que inserta cada uno varias filas en serie y un gran número de trabajos en línea que inserta cada uno filas individuales o múltiples puede experimentar una mejora significativa del rendimiento de IAG2.
Múltiples trabajos con un gran número de hilos insertando varias filas simultáneamente

Sin embargo, IAG2 no ofrece una ventaja significativa de rendimiento cuando un pequeño número de trabajos de proceso por lotes insertan varias filas en serie. En esta situación, las filas se insertan de una en una, lo que significa que el espacio útil dentro del espacio de tabla se consume solo una fila a la vez. Como no hay contención de espacio, la preasignación de páginas de datos aporta pocos beneficios.

Figura 2. Es posible que un pequeño número de trabajos por lotes que insertan varias filas en serie no experimente una mejora de rendimiento de IAG2.
IAG2 no proporciona ninguna ventaja de rendimiento significativa cuando un pequeño número de agentes insertan filas en serie.
Sugerencias:
  • Para determinar si el rendimiento de las cargas de trabajo se puede mejorar con IAG2, evalúe las suspensiones de clase 3 del informe de contabilidad. Si detecta una larga espera en contenciones de cierre de página o contenciones globales que se originan en páginas de datos o páginas de correlación de espacio, IAG2 podría aliviar estos retrasos.
  • En la mayoría de las situaciones, el uso de IAG2 no debería aumentar significativamente el uso del espacio. Sin embargo, cuando se utiliza IAG2 con tablas que no experimentan un gran volumen de actividad INSERT, el uso de espacio puede aumentar en previsión de una gran actividad INSERT de Db2. Como IAG2 sólo se utiliza para espacios de tabla que se hayan definido con la opción MEMBER CLUSTER, evalúe la necesidad de esta opción en las tablas que tengan una actividad INSERT baja. La eliminación de esta opción forzará el uso de IAG1, evitando así un mayor uso del espacio. Como alternativa, si es necesaria la opción MEMBER CLUSTER, emita una sentencia ALTER TABLESPACE y cambie la opción de INSERT ALGORITHM a 1 para evitar el aumento de espacio.

Factores que pueden afectar al rendimiento de inserción

Aunque IAG2 elimina la contención de páginas de datos y correlación de espacio en condiciones óptimas, otros factores como la contención de índices y la espera de grabación de registro también pueden afectar negativamente al rendimiento de las inserciones simultáneas. IAG2 no tiene efectos atenuantes sobre estos problemas.

Además, el rendimiento de inserción puede verse afectado por problemas generales de rendimiento, como cuellos de botella de red y problemas con agrupaciones de almacenamiento intermedio, el recurso de acoplamiento y el registro de Db2.

Inicio del cambio

¿Qué sucede si se inhabilita IAG2?

Si IAG2 se inhabilita, Db2 emite el mensaje DSNI055I y un código de retorno adjunto que indica la razón del error. Si el error es debido a una situación temporal, como por ejemplo una escalabilidad de bloqueos o un problema de almacenamiento en un canal de comunicación de páginas o una condición de falta de espacio que puede requerir una intervención manual, Db2 intenta automáticamente volver a habilitar IAG2 a intervalos predefinidos mientras espera hasta que se resuelva la condición de error. El primer intento de volver a habilitar IAG2 se produce 75 segundos después del error inicial. Los intentos posteriores continuarán aumentando los intervalos hasta uno por hora.

Si IAG2 se inhabilita debido a una situación que se debe corregir manualmente, por ejemplo, cuando se alcanza la cantidad máxima de espacio, es posible que Db2 no intente automáticamente volver a habilitar IAG2. Examine los mensajes de servicios de nivel inferior para determinar la causa del error. En este tipo de situaciones, IAG2 se volverá a habilitar en la primera inserción después de añadirse espacio adicional.

Cuando IAG2 se vuelve a habilitar correctamente de forma automática sin intervención manual, se emite el mensaje DSNI087I. En situaciones que requieren que se añada espacio, no se emite necesariamente DSNI087I.

Consejo : Considere la posibilidad de añadir el par de mensajes DSNI055I y DSNI087I a la lista de mensajes que supervisa manualmente o a través de servicios automatizados.
fin del cambio