如何使用xml_deadlock_report查看参与死锁的SQL语句?
我发现我的数据库在默认情况下有xml\u死锁\u报告扩展事件处于打开状态。在我的服务器日志中,我发现了一些死锁异常。xp_readerrorlog不显示任何死锁信息。如何获取死锁信息。以下是答案如何使用xml_deadlock_report查看参与死锁的SQL语句?,sql,sql-server-2012,Sql,Sql Server 2012,我发现我的数据库在默认情况下有xml\u死锁\u报告扩展事件处于打开状态。在我的服务器日志中,我发现了一些死锁异常。xp_readerrorlog不显示任何死锁信息。如何获取死锁信息。以下是答案 SELECT CAST ( REPLACE ( REPLACE ( XEventData.XEvent.value ('(data/value)[1]', 'varchar(max)'), '<victim-list>'
SELECT CAST (
REPLACE (
REPLACE (
XEventData.XEvent.value ('(data/value)[1]', 'varchar(max)'),
'<victim-list>', '<deadlock><victim-list>'),
'<process-list>', '</victim-list><process-list>')
AS XML) AS DeadlockGraph
FROM (SELECT CAST (target_data AS XML) AS TargetData
FROM sys.dm_xe_session_targets st
JOIN sys.dm_xe_sessions s ON s.address = st.event_session_address
WHERE [name] = 'system_health') AS Data
CROSS APPLY TargetData.nodes ('//RingBufferTarget/event') AS XEventData (XEvent)
WHERE XEventData.XEvent.value('@name', 'varchar(4000)') = 'xml_deadlock_report';
多亏了