DBAtlas · Atlas de operaciones de bases de datos

1205: Transaction (Process ID) was deadlocked on lock resources with another process and has been chosen as the deadlock victim (la transacción quedó en deadlock y fue elegida como víctima)

SQL Server

¿Qué significa?

Dos o más transacciones esperan cada una bloqueos que mantiene la otra (un deadlock). Para romper el ciclo, SQL Server elige una transacción como víctima y la revierte.

¿Por qué ocurre?

Las causas típicas son transacciones que bloquean tablas/filas en distinto orden, transacciones de larga duración, recorridos amplios por falta de índices, lock escalation y alta concurrencia.

Cómo solucionarlo

Capture el error 1205 en la aplicación y reintente la transacción automáticamente. Acceda a los objetos en el mismo orden en todas las transacciones y mantenga las transacciones cortas. Examine el grafo de deadlock: use Extended Events (la sesión system_health) o el trace flag 1222 para más detalles. Añada índices adecuados para reducir recorridos y bloqueos. Si es necesario, evalúe el nivel de aislamiento READ COMMITTED SNAPSHOT (RCSI).

Abrir en DBAtlas →

Más entradas de este motor