sql-server - 识别 AWS RDS 上的 SQL Server 死锁

标签 sql-server amazon-rds deadlock

有人知道如何识别 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/

相关文章:

sql-server - SQL - WHERE 子句中的 AND 条件

amazon-web-services - AWS CLI 按标签搜索资源

sql-server - 更新锁的用途

java - 在同一个类中执行同步和非同步方法

sql - 使用变量创建模式的脚本

sql-server - 仅终止 SQL Server 中的用户进程

当同时发送另一个查询时,MySQL 查询速度变慢

mysql - 插入导致 InnoDB 中出现死锁。这怎么发生的?

c# - Entity Framework 首先在数据库中的 AddRange 上滥用 sp_execsql

python-3.x - 如何使用 Python 3.6 将 pymysql 模块安装到 AWS Lambda