1205: Transaction (Process ID) was deadlocked on lock resources with another process and has been chosen as the deadlock victim
SQL ServerO 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).
Mais entradas deste banco
- 2627Violation of PRIMARY KEY / UNIQUE KEY constraint. Cannot insert duplicate key in object
- 2601Cannot insert duplicate key row in object with unique index. The duplicate key value is ...
- 547The INSERT/UPDATE/DELETE statement conflicted with the FOREIGN KEY / CHECK constraint
- 18456Login failed for user