我想收集 SQL 死锁的详细信息。我正在尝试使用此查询。 由于我必须在生产环境中运行它,我担心它是否会造成开销。我可以应用任何过滤器来将数据集限制为今天或昨天吗?
SELECT CONVERT(XML, event_data) DeadLockXMLData
,ROW_NUMBER() OVER (
ORDER BY Object_name
) DeadLockNumber
FROM sys.fn_xe_file_target_read_file(N'system_health*.xel', NULL, NULL, NULL)
WHERE OBJECT_NAME = 'xml_deadlock_report'
我想我可以用这个来满足需要。来自文档
SELECT * FROM sys.fn_xe_file_target_read_file('system_health*.xel', null, null, null)
WHERE timestamp_utc > dateadd(day, -1, GETUTCDATE())
PS:这
timestamp_utc
适用于:SQL Server 2017 (14.x) 及更高版本和 Azure SQL 数据库。