Treinamento SQL Server

Módulo 37 — Deadlocks: Casos Reais & Troubleshooting

Captura, leitura de grafos e estratégias de prevenção/recuperação.

T-SQL Nível Avançado Hands-on Atualizado: 28 ago 2025

1) Capturando Deadlocks (XE)

CREATE EVENT SESSION Deadlocks ON SERVER
ADD EVENT sqlserver.xml_deadlock_report
ADD TARGET package0.event_file(SET filename='D:\\xe\\deadlocks.xel');

2) Lendo o Deadlock Graph

3) Padrões Comuns (Conversão/Range)

4) Prevenção & Ordem de Acesso

5) Técnicas (UPDLOCK, HOLDLOCK, AppLocks)

EXEC sp_getapplock @Resource='pedido-123', @LockMode='Exclusive';

6) Retentativas & Backoff

-- Loop com TRY/CATCH para ERROR_NUMBER()=1205

7) Laboratório

-- Simular deadlock conversão S→X e resolver com UPDLOCK.

8) Exercícios

  1. Reproduzir deadlock de range e resolver.

9) Gabarito

SET DEADLOCK_PRIORITY LOW;

10) Checklist

11) Próximos Passos