DBAtlas · Atlas de operações de banco de dados

enq: TX - row lock contention: Espera: sessão bloqueada em um lock de linha mantido por outra transação

Oracle

O que significa?

Uma sessão está aguardando a liberação de um lock de linha mantido por outra transação. Este é o evento de espera de lock clássico no nível da aplicação.

Por que acontece?

Transações concorrentes tentando atualizar a mesma linha, transações deixadas sem commit por muito tempo, locking amplo causado por foreign keys sem índice, ou concentração em uma chave sequencial (hot block).

Como resolver

Encontre as sessões bloqueadoras e bloqueadas: SELECT * FROM v$session WHERE blocking_session IS NOT NULL; e correlacione com v$lock. Se transações longas forem a causa raiz, revise a estratégia de commit. Indexe as colunas de foreign key. Repense o design (sequence, hash) para hot rows. Encerre a sessão bloqueadora quando necessário.

Abrir no DBAtlas →

Mais entradas deste banco