锁&事务
RDS for SQL Server是一款流行的关系型数据库管理系统,具有强大的死锁检测功能。当多个用户同时访问同一资源时,可能会出现死锁现象,即两个或多个进程互相等待对方释放资源,导致所有进程都无法继续执行。此时,SQL Server将选择其中一个进程终止(Kill),其他进程就可以完成其事务。
为解决上述问题,DAS提供了锁统计页面。通过查看该页面,可快速定位数据库中发生的多种类型的死锁。死锁的详细信息页面展示了事务开始执行的时间、会话ID、被锁资源详情、死锁的模式等信息,帮助您定位和优化引发死锁的问题SQL及其他异常。
操作步骤
- 登录管理控制台。
- 单击管理控制台左上角的
,选择区域和项目。
- 单击页面左上角的
,选择“数据库 > 数据管理服务 DAS”,进入数据管理服务页面。
- 在左侧的导航栏中单击
页签,进入DBA智能运维实例列表页面。
您也可以在产品概览页面,单击“进入DBA智能运维”,进入DBA智能运维实例列表页面。
- 在实例列表页面右上角,按照引擎、实例名称或者实例IP筛选实例。
图1 筛选实例
- 选择目标实例,单击“详情”,进入“实例概览”页面。
- 单击“锁&事务”,进入锁&事务页面。
- 查看死锁数
- 查看死锁变化趋势
图3 死锁变化趋势
表1 死锁变化趋势参数说明 参数
说明
死锁总数
所有死锁数量。
Key Lock
索引相关死锁数。
Object Lock
对象相关死锁数。
Rid Lock
行死锁数。
Page Lock
页死锁数。
Compile Lock
编译死锁数。
- 查看死锁详情信息
可以在死锁数页面可以选择需要查看时间段内的死锁详情信息,包含LastTranStarted、SPID、isVictim、Database、LogUsed、LockMode、WaitResourceDesc、ObjectOwned、ObjectRequested、WaitResource、HostName、LoginName、Status、ClientApp、SQL、DataBase、操作。图4 死锁详情信息
单击操作列的“死锁关系图”,可以查看死锁关系图。单击“下载”,可以下载当前死锁的详细内容。
图5 死锁关系图表2 死锁详情信息参数说明 参数
说明
LastTranStarted
事务开启的时间。
SPID
开启事务的会话ID。
isVictim
该会话是否已被终止(Kill)。
Database
事务连接数据库名称。
LogUsed
会话已经生成的日志大小。单位:字节。
LockMode
锁模式。
WaitResourceDesc
当前事务等待中的资源详情。
ObjectOwned
已经被锁住的对象。
ObjectRequested
当前事务请求加锁的对象。
WaitResource
当前事务等待中的资源。
HostName
当前事务的主机名称。
LoginName
当前事务的账号名称。
Status
当前事务的状态。
ClientApp
当前事务所使用的客户端名称。
SQL
SQL语句详情。
操作
可查看死锁关系图。
- 查看死锁详情信息