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

1205: Transaction (Process ID) was deadlocked on lock resources with another process and has been chosen as the deadlock victim

SQL Server

O que significa?

Duas ou mais transações aguardam, cada uma, locks mantidos pela outra (um deadlock). Para quebrar o ciclo, o SQL Server escolhe uma transação como vítima e faz rollback dela.

Por que acontece?

Transações bloqueando tabelas/linhas em ordens diferentes, transações de longa duração, varreduras amplas causadas por falta de índices, lock escalation e alta concorrência são as causas típicas.

Como resolver

Capture o erro 1205 na aplicação e repita a transação automaticamente. Acesse os objetos na mesma ordem em todas as transações e mantenha as transações curtas. Examine o grafo de deadlock: use Extended Events (a sessão system_health) ou o trace flag 1222 para detalhes. Adicione índices adequados para reduzir varreduras e locks. Se necessário, avalie o nível de isolamento READ COMMITTED SNAPSHOT (RCSI).

Abrir no DBAtlas →

Mais entradas deste banco