Skip to content
monitor-deadlock

Monitor Deadlock en SQL Server

Ya conocemos qué es un deadlock en SQL Server y sabemos las terribles consecuencias que puede tener. Ahora, generar un Monitor de Deadlock es aquello que ayudará a identificar puntualmente cuáles son los causantes de tremendo error.

Siguiente paso: crear un monitor de deadlock

La forma más sencilla de tener registros de deadlock en SQL Server es a través de la creación de un Extended Event.

No necesitamos cambiar ninguna configuración del servidor ni generar grandes archivos de trazas. Simplemente creamos el Extended Event y empieza el registro exclusivo de deadlocks.

Script monitor Deadlock

CREATE EVENT SESSION [DeadlockMonitor] ON SERVER 
ADD EVENT sqlserver.lock_deadlock(
    ACTION(sqlos.task_time)),
ADD EVENT sqlserver.xml_deadlock_report(
    ACTION(sqlos.task_time))
ADD TARGET package0.event_file(SET filename=N'DeadlockReg',
	max_file_size=(10240))
WITH (MAX_MEMORY=4096 KB,
	EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,
	MAX_DISPATCH_LATENCY=30 SECONDS,
	MAX_EVENT_SIZE=0 KB,
	MEMORY_PARTITION_MODE=NONE,
	TRACK_CAUSALITY=OFF,
	STARTUP_STATE=OFF)
GO

Si quieres conocer más detalles sobre este tipo de scripts, puedes consultar la documentación oficial de Extended Events en SQL Server. También puedes descargar el script desde el github.

Consideraciones al monitor

Como cualquier monitor, lo importante es tener un seguimiento y control de lo que se registra.

Optar por implementar un monitor que registre la aparición de errores de deadlocks, implica tener la meta de mejorar nuestros códigos y/o estructuras para reducir idealmente a cero la posibilidad de seguir recibiendo errores de esta característica.

Y si quieres probar esta herramienta también puedes Simular un deadlock para ver los resultados.

Puedes ver más herramientas entregadas en nuestro portal.

www.datoptim.com
I love working on SQL Server Performance Tuning and finding the origin of the problems. Music and SQL Server passionate.

Carrito
Volver arriba