Notas del release


17.3 Capítulo 2. Resolución de problemas de DB2 Universal Database Server

Bajo la sección "Bloqueo y puntos muertos", en la subsección "Aplicaciones lentas o que parece que se han bloqueado", se debe cambiar la descripción que aparece bajo "Las esperas de bloqueo o los puntos muertos no se deben al bloqueo de la siguiente clave" por:

Bloqueo siguiente clave garantiza un nivel de aislamiento de Lectura repetible (RR) al bloquear automáticamente la siguiente clave para todas las sentencias INSERT y DELETE y el siguiente valor de clave más alto que esté por encima del grupo de resultados para sentencias SELECT. Para sentencias UPDATE que modifiquen partes de clave de un índice, la clave del índice original se suprime y se inserta el nuevo valor de clave. El bloqueo de siguiente clave se realiza en la inserción de clave y en la supresión de clave. Esto es necesario para garantizar RR estándar de ANSI y SQL92 y es el valor por omisión de DB2.

Examine la información de instantánea correspondiente a la aplicación. Si el problema parece encontrarse con el bloqueo de siguiente clave, puede activar la opción DB2_RR_TO_RS si ninguna de las aplicaciones confía en el comportamiento de Lectura repetible (RR) y se acepta que las exploraciones se salten las supresiones no confirmadas.

Cuando DB2_RR_TO_RS está activado, el comportamiento RR no se puede garantizar para exploraciones en tablas de usuarios porque el bloqueo de siguiente clave no se realiza durante la inserción y supresión de clave de índice. Las tablas de catálogo no se ven afectadas por esta opción.

El otro cambio en el comportamiento es que, cuando DB2_RR_TO_RS está activado, las exploraciones se saltan las filas que se han suprimido pero no se han confirmado, aunque la fila se haya cualificado para la exploración.

Por ejemplo, supongamos que tenemos un escenario en el que la transacción A suprime la fila con column1=10 y la transacción B realiza una exploración donde column1>8 y column1<12.

Con DB2_RR_TO_RS desactivado, la transacción B esperará a que la transacción A se confirme o retrotraiga. Si se retrotrae, la fila con column1=10 se incluirá en el grupo de resultados de la consulta de la transacción B.

Con DB2_RR_TO_RS activado, la transacción B no esperará a que la transacción A se confirme o retrotraiga. Recibirá inmediatamente los resultados de la consulta que no incluyan la fila suprimida.

No utilice esta opción si necesita RR estándar ANSI y SQL92 o si no desea que las exploraciones se salten las supresiones no confirmadas.


[ Principio de página | Página anterior | Página siguiente | Contenido | Índice ]