Tecnología

Inicio

Cuáles son las causas de un punto muerto con Oracle?

Cuáles son las causas de un punto muerto con Oracle?


Puntos muertos son frustrantes. Si solicita el acceso a información específica en su ordenador, por ejemplo, la computadora puede no proporcionarle el acceso a un punto muerto cuando sucede. A los puntos muertos se produce en Oracle cuando dos sesiones intentan usar el mismo recurso. El código de error "ORA-00060" señala un punto muerto en Oracle. Los cuatro tipos principales de los puntos muertos en Oracle son, transacción autónoma en general, el índice de mapa de bits y la clave externa no indexados.

Punto muerto general

Un interbloqueo en general se produce en Oracle cuando dos sesiones independientes necesitan para acceder al mismo recurso al mismo tiempo. Cada sesión de espera a la otra sesión para liberar el recurso. Al final, Oracle selecciona arbitrariamente una de las sesiones y produce un error. Por desgracia, a pesar de que una sesión recibe un error, el que utiliza recursos permanece bloqueado. Con el fin de evitar este tipo de punto muerto, toda la codificación de Oracle debe escribirse de manera que los procesos se producen siempre en el mismo orden. En otras palabras, los usuarios deben codificar todos los procesos para comenzar con el mismo recurso y proceder a través de los otros recursos en orden numérico.

Transacción Autónoma

Una transacción autónoma es una sesión que está programado para operar una segunda sesión dentro de sí mismo. Interbloqueos ocurren en una transacción autónoma cuando la sesión secundaria y la sesión de los padres compiten por los mismos recursos. Al igual que con un punto muerto en general, las dos sesiones aguardan el lanzamiento de un recurso antes de liberar su recurso actual. Oracle produce entonces un código de error de punto muerto, pero una vez más los recursos permanecen bloqueados. Al igual que con el estancamiento general, un callejón sin salida transacción autónoma es el resultado de prácticas de codificación inconsistentes. Al asegurar que todos los procesos comienzan a partir de un determinado recurso y el progreso en orden, no se producirá un estancamiento autónoma.

Índice de mapa de bits

Un índice de mapa de bits se utiliza cuando los datos se almacenan y se produce muy poca manipulación de datos. Un interbloqueo índice de mapa de bits se produce cuando se intenta la manipulación de datos en filas de la tabla que se utilizan por los que el índice de mapa de bits. El punto muerto es causada por bloques de índices que se han usado cuando se intenta la manipulación de datos. Desafortunadamente, este tipo de punto muerto es casi inevitable. Algunos de manipulación de datos siempre será necesaria para un índice de mapa de bits, incluso si es sólo para actualizar el índice. La necesidad de manipulación de datos hace que este tipo de interbloqueo difícil de evitar.

Unindexed clave externa

Una clave externa no indexados es una causa común de estancamiento en Oracle, pero también es una causa fácil de solucionar. El proceso de este punto muerto implica un registro padre tratando de acceder a la información en una subtabla. Una subtabla o tabla secundaria, es una tabla dentro del registro primario original. La clave externa no indexados se encuentra en la tabla secundaria. En un intento para realizar el mantenimiento, Oracle bloquea toda la tabla secundaria, lo que aumenta la oportunidad para que un punto muerto que se produzca. La mejor manera de asegurar este tipo de estancamiento no se produce es indexar todas las claves.