RDS for SQL Server查看锁情况

查看锁

通过sys.dm_tran_locks系统视图查看锁的情况,查询哪些数据库有锁,SQL如下:

select str(request_session_id, 4, 0) as spid,
convert(varchar(20), db_name(resource_database_id)) as DB_Name,
case when resource_database_id = db_id() and resource_type = 'OBJECT'
then convert(char(20), object_name(resource_Associated_Entity_id))
else convert(char(20), resource_Associated_Entity_id)
end as object,
convert(varchar(12), resource_type) as resrc_type,
convert(varchar(12), request_type) as req_type,
convert(char(3), request_mode) as mode,
convert(varchar(8), request_status) as status
from sys.dm_tran_locks
order by request_session_id desc;


系统视图

说明 MODE列是锁的模式,介绍如下:

  • 共享(S)用于不更改或不更新数据的操作(只读操作),如SELECT语句。
  • 更新(U)用于可更新的资源中。防止当多个会话在读取、锁定以及随后可能进行的资源更新时发生常见形式的死锁。
  • 排它(X)用于数据修改操作,例如INSERT、UPDATE或DELETE,确保不会同时同一资源进行多重更新。
  • 意向锁用于建立锁的层次结构。意向锁的类型为:意向共享(IS)、意向排它(IX)以及与意向排它共享(SIX)。
  • 架构锁在执行依赖于表架构的操作时使用。架构锁的类型为:架构修改(Sch-M)和架构稳定性(Sch-S)。
  • 大容量更新(BU)向表中大容量复制数据并指定了TABLOCK提示时使用。

也可以查询哪些表有锁,SQL如下:

select request_session_id sessionid,
resource_type type,
convert(varchar(20), db_name(resource_database_id)) as db_name,
OBJECT_NAME(resource_associated_entity_id, resource_database_id) objectname,
request_mode rmode,
request_status rstatus
from sys.dm_tran_locks
where resource_type in ('OBJECT')


表锁

说明

  • sessionid:锁表的进程。
  • objectname:被锁的表名。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值