有人知道如何识别 AWS RDS 上的 SQL Server 死锁吗?我试试
dbcc traceon(1222,-1)
但我没有必要的权限; AWS 监控页面没有死锁信息。
最佳答案
我也在努力在 AWS 中进行监控以显示死锁。但是,我可以向您展示如何启用跟踪标志 1222。This blog post on SQLTips如果您想使用参数组,几乎涵盖了所有需要的内容。如果您只是打算使用 PowerShell,它涵盖了所有内容。使用这些方法之一启用它,您将在日志中看到错误。
在创建启用了 1222 的自定义参数组后,您需要做的另一件事是将该组与您的数据库实例相关联。选择实例并选择修改。向下滚动以找到参数和设置部分。选择您使用上述说明定义的组。
我将继续寻找一种直接在监控页面中查看死锁的方法。暗示他们应该在那里,因为你可以调用柜台。但是,我无法让它生成任何值。
更新: 我正在继续研究这个。您可以查询 system_health 扩展事件 session 。尽管扩展事件在 AWS RDS 中不可用,但 system_health 仍然存在。此查询有效:
WITH fxd
AS (SELECT CAST(fx.event_data AS XML) AS Event_Data
FROM sys.fn_xe_file_target_read_file(N'system_health*.xel', 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 - 识别 AWS RDS 上的 SQL Server 死锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58764369/