Deadlocks en SQL Server: del gráfico a la causa raíz
Un deadlock es un ciclo donde varias sesiones retienen recursos que otras necesitan. SQL Server finaliza una sesión, pero la víctima no siempre es la causa.
Deadlocks en SQL Server: del gráfico a la causa raíz
Un deadlock es un ciclo donde varias sesiones retienen recursos que otras necesitan. SQL Server finaliza una sesión, pero la víctima no siempre es la causa.
Qué medir
Captura el XML mediante Extended Events. Revisa procesos, recursos, modos de bloqueo, instrucciones, transacciones y víctima, y relaciona cada instrucción con la operación de la aplicación.
Enfoque práctico
Accede a los objetos en orden coherente, acorta transacciones, mejora rutas de acceso cuando esté justificado e implementa reintentos limitados para el error 1205.
Qué evitar
No uses NOLOCK como solución universal, no culpes solo a la víctima y no conserves únicamente una captura del gráfico.
Resultado operativo
La solución duradera elimina o acorta el ciclo. Los reintentos protegen al usuario, pero no sustituyen la corrección de la causa.
Lista de producción
Captura una línea base y define la mejora esperada. Prueba con datos y concurrencia representativos. Conserva la configuración o el plan original, prepara una reversión, despliega en una ventana adecuada y observa el siguiente pico normal de carga.
Si quieres aplicar este método a un entorno SQL Server concreto, usa el formulario inferior e incluye la versión, el tamaño de la base, el patrón de carga y las evidencias ya recopiladas.