DBAtlas · Atlas de operaciones de bases de datos

enq: TX - row lock contention: Espera: sesión bloqueada por un bloqueo de fila que mantiene otra transacción

Oracle

¿Qué significa?

Una sesión espera a que se libere un bloqueo de fila que mantiene otra transacción. Es el wait event clásico de bloqueo a nivel de aplicación.

¿Por qué ocurre?

Transacciones concurrentes que intentan actualizar la misma fila, transacciones sin commit durante mucho tiempo, bloqueos amplios causados por claves foráneas sin índice o concentración en una clave secuencial (hot block).

Cómo solucionarlo

Encuentre las sesiones bloqueantes y bloqueadas: SELECT * FROM v$session WHERE blocking_session IS NOT NULL; y correlacione con v$lock. Si la causa raíz son transacciones largas, revise la estrategia de commit. Indexe las columnas de claves foráneas. Replantee el diseño (sequence, hash) para filas calientes. Termine la sesión bloqueante cuando sea necesario.

Abrir en DBAtlas →

Más entradas de este motor