开发者社区> 问答> 正文

【RDS】MSSQL中如何查看行锁等待?

已解决

MSSQL中如何查看行锁等待?

展开
收起
云上猫猫 2022-01-14 11:09:14 735 0
1 条回答
写回答
取消 提交回答
  • 采纳回答

    可以使用如下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
    

    注:

    • 如果出现行锁等待或者堵塞现象,则会在执行结果中罗列出来。

    • BSID是指持有锁的sessionID。

    • SID是指等待锁的sessionID。

    2022-01-14 11:09:51
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像