使用 Microsoft 登录
登录或创建帐户。
你好,
使用其他帐户。
你有多个帐户
选择要登录的帐户。

症状

假设您使用的是 Microsoft SQL Server 2016 和2017。 如果你启用事件xml_deadlock_report 以收集死锁的数据,则会针对单个查询内死锁出现情况报告许多 xml_deadlock_report 事件。

解决方法

为解决此问题,你可以使用筛选器 error_number = 1205而不是 xml_deadlock_report 来收集 error_reported XEvent 如以下示例所示:

在服务器上创建事件会话 [Deadlock_Collection]

添加事件 sqlserver.error_reported (

WHERE ([error_number] = (1205))

添加目标 package0 (SET filtering_event_name = N "sqlserver.lock_acquired",source = N "sqlserver.query_hash")

WITH (MAX_MEMORY = 4096 KB,EVENT_RETENTION_MODE = ALLOW_SINGLE_EVENT_LOSS,MAX_DISPATCH_LATENCY = 30 秒,MAX_EVENT_SIZE = 0 KB,MEMORY_PARTITION_MODE = 无,TRACK_CAUSALITY = 打开,STARTUP_STATE = 关闭) 

转向

解决方案

在 SQL Server 的以下累积更新中修复了此问题:

       SQL Server 2017 的累积更新10

       SQL Server 2016 SP2 的累积更新2

提示使用此修补程序时,如果在不终止线程的情况下可以解析死锁,则不会向查询内死锁报告任何 xml_deadlock_report 事件。

SQL Server 的每个新的累积更新均包含以前的累积更新中包含的所有修补程序和所有安全修补程序。 查看 SQL Server 的最新累积更新:

SQL Server 2017 的最新累计更新

SQL Server 2016 的最新累计更新

状态

Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。

参考

了解 Microsoft 用于描述软件更新的 术语

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。

此信息是否有帮助?

你对语言质量的满意程度如何?
哪些因素影响了你的体验?
按“提交”即表示你的反馈将用于改进 Microsoft 产品和服务。 你的 IT 管理员将能够收集此数据。 隐私声明。

谢谢您的反馈!

×