本文介绍在RDS SQL Server中如何查看行锁等待。
说明
阿里云提醒您:
如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。
操作步骤
可以使用如下SQL语句,查看当前实例的行锁等待情况。
use master;
go
WITH CTE_SID ( BSID, SID, sql_handle )
AS ( SELECT [Blocking_Session_ID],
[Session_ID] ,
sql_handle
FROM sys.dm_exec_requests
WHERE [Blocking_Session_ID] <> 0
UNION ALL
SELECT A.[Blocking_Session_ID] ,
A.[Session_ID] ,
A.sql_handle
FROM sys.dm_exec_requests A
JOIN CTE_SID B ON A.[Session_ID] = B.BSID
)
SELECT C.BSID,
C.SID ,
S.login_name ,
S.host_name ,
S.status ,
S.cpu_time ,
S.memory_usage ,
S.last_request_start_time ,
S.last_request_end_time ,
S.logical_reads ,
S.row_count ,
q.text
FROM CTE_SID C
JOIN sys.dm_exec_sessions S ON C.sid = s.[Session_ID]
CROSS APPLY sys.dm_exec_sql_text(C.sql_handle) Q
ORDER BY sid
说明
数据库中出现行锁等待或堵塞情况时,会在查询结果中罗列出每个等待锁的会话(SID)和持有锁的会话(BSID)。
相关文档
文档内容是否对您有帮助?