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

ORA-00060: Deadlock detected while waiting for resource

Oracle

O que significa?

Duas ou mais sessões estão em deadlock, cada uma aguardando um recurso mantido pela outra. O Oracle detecta o ciclo, escolhe uma vítima e faz rollback da instrução dessa sessão.

Por que acontece?

Locks de linha adquiridos em ordens diferentes, as mesmas linhas atualizadas de forma cruzada por transações diferentes, locks de tabela em atualizações da tabela pai causados por foreign keys sem índice, ou DML concorrente em um índice bitmap.

Como resolver

Examine o arquivo de trace do deadlock (grafo) referenciado no alert log para encontrar as instruções SQL e as linhas em conflito. Na aplicação, sempre acesse tabelas/linhas na mesma ordem. Indexe as colunas de foreign key (FKs sem índice são uma causa clássica de deadlock). Mantenha as transações curtas e revise a frequência de commit. Capture a transação em deadlock na aplicação e tente novamente.

Abrir no DBAtlas →

Mais entradas deste banco