我有这个查询来自“Sql Server 2017 Query Performance Tuning”(一本书)。这本书的代码可以在这里找到:https ://github.com/Apress/sql-server-2017-query-perf-tuning
DECLARE @path NVARCHAR(260)
--to retrieve the local path of system_health files
SELECT @path = dosdlc.path
FROM sys.dm_os_server_diagnostics_log_configurations AS dosdlc;
SELECT @path = @path + N'system_health_*';
WITH fxd
AS (SELECT CAST(fx.event_data AS XML) AS Event_Data
FROM sys.fn_xe_file_target_read_file(@path,
NULL,
NULL,
NULL) AS fx )
SELECT dl.deadlockgraph
FROM
( SELECT dl.query('.') AS deadlockgraph
FROM fxd
CROSS APPLY event_data.nodes('(/event/data/value/deadlock)') AS d(dl) ) AS dl;
它应该从扩展事件中捕获死锁图。我刚刚按照这个示例生成了一个死锁(如何在 SQL Server 上模拟 DEADLOCK?)。
但是当我运行查询时,我得到一个空的结果集。