4

One user reported a deadlock error in one SQL Server box (he may found it in some application logs). Anyway, I need to find out details for this deadlock but I never enabled any trace flag like 1204 and 1222. Does SQL Server log deadlock by default? Can I find the details about that deadlock somewhere or do I have to enable trace flag and then wait for deadlock happening again?

Alberto Solano
  • 7,972
  • 3
  • 38
  • 61
user3093893
  • 119
  • 1
  • 9

1 Answers1

3

I use this sql to get all the deadlocks.

DECLARE @xml XML

SELECT @xml = target_data
FROM   sys.dm_xe_session_targets
JOIN sys.dm_xe_sessions
ON event_session_address = address
WHERE  name = 'system_health' AND target_name = 'ring_buffer'

SELECT CAST(XEventData.XEvent.value('(data/value)[1]', 'varchar(max)') AS XML)
FROM   (SELECT @xml AS TargetData) AS Data
CROSS APPLY TargetData.nodes ('RingBufferTarget/event[@name="xml_deadlock_report"]') AS XEventData (XEvent)
user3093893
  • 119
  • 1
  • 9