云数据库 SQL Server 查询和下载阻塞事件及死锁事件

云数据库 SQL Server 支持记录阻塞事件及死锁事件,通过记录,可以查找出造成阻塞及死锁的执行 SQL 详细信息,以便进行优化。

相关产品
云数据库 SQL Server 产品页,含版本规格、价格与购买入口。

这里说明如何查询和下载阻塞事件及死锁事件。

注意:说明:

一、背景

在数据库中,为了保持数据的一致性,当某个会话对特定资源进行修改并未完成修改时,系统不会释放此特定资源,目的是为了避免其他并发会话对同个资源进行访问或修改。当存在慢 SQL 或者其他异常时,可能会导致资源被长时间占用,严重影响其他会话的访问,形成阻塞事件。

另一方面,如果多个事务互相竞争资源,例如,第一个事务连接占用的资源 A 没有释放,准备获取第二个事务连接占用的资源 B,而第二个事务连接占用的资源 B 没有释放,又准备获取第一个事务连接占用的资源 A,就会形成死锁事件。

为解决上述问题,云数据库 SQL Server 在控制台提供了阻塞事件及死锁事件记录设置功能(默认开启采集),可快速定位数据库中发生的阻塞和死锁事件,帮助你定位和优化引发问题的执行 SQL 详细信息。

二、阻塞事件及死锁事件相关说明

·阻塞事件及死锁事件默认开启采集,不支持关闭。系统将会对阻塞事件及死锁事件进行采集,文件中会记录造成阻塞及死锁的 SQL 详细信息。

·阻塞事件及死锁事件的采集阈值默认为1000毫秒(1000毫秒 = 1秒),超过1000毫秒的执行 SQL 会被记录为阻塞 SQL 及死锁 SQL,支持自定义修改采集阈值(1000毫秒 – 86400000毫秒)。

·阻塞事件及死锁事件日志数据每累积满10MB 生成一个文件,单个文件上限固定为10MB,单个文件生成的时间跨度不固定,而是取决于日志产生的速度。

·阻塞事件及死锁事件的保留时间默认为7天,到期后自动删除。

三、阻塞事件及死锁事件文件生成和下载策略

你可以下载阻塞事件或死锁事件文件以查看对应日志数据,进而排查问题。在下载文件之前,你可以通过以下描述了解文件生成和下载的策略以更快捷的进行查询和下载文件。

·当实例的阻塞事件及死锁事件日志数据每累积达到10MB 时,系统会自动切分并生成一个新文件,文件状态为“完成”后即可下载。

·当实例的阻塞事件及死锁事件日志数据尚未写满10MB 时,对应日志文件状态为“写入中”:若其中已有日志数据,你可在控制台对应日志列表中下载,系统将即时生成文件供你下载,无需等待写满10MB。

·若实例未产生任何阻塞事件及死锁事件日志数据,则不会生成日志文件,也不支持下载。

四、修改阻塞事件及死锁事件的采集阈值

存量及新增实例默认开启阻塞事件及死锁事件的采集,且不支持关闭。你可参考如下步骤,修改阻塞事件及死锁事件的采集阈值。

1. 登录 SQL Server 控制台。

2. 在上方选择地域,找到目标实例,单击实例 ID 或在其操作列单击管理,进入实例管理页。

3. 在实例管理页,选择操作日志页。

4. 单击操作日志设置。

5. 在弹窗下修改阻塞事件及死锁事件的采集阈值(1000毫秒 – 86400000毫秒),单击保存。

五、查询和下载阻塞事件及死锁事件

1. 在实例管理页,选择操作日志 > 阻塞事件,或操作日志 > 死锁事件可以查看对应事件列表。

·支持查看的字段信息为:文件名、文件生成开始时间、文件生成结束时间、文件大小、操作(下载)。

·支持根据时间范围检索日志:近5分钟、近15分钟、近半小时、近1小时、近3小时、近24小时、今天、昨天、近3天、近7天、近30天以及自定义时间段。

2. 在操作列单击下载,即可下载阻塞事件或死锁事件文件。

注意:说明:

注意:在单击下载时,存在以下几种情况。

六、相关 API

API 描述
查询扩展事件列表 接口(DescribeXEvents)用于查询扩展事件列表。
开启、关闭扩展事件 接口(StartInstanceXEvent)用于开启、关闭扩展事件。
赞 (0)
上一篇 4天前
下一篇 4天前