• Sqlserver查询阻塞的SQL语句


    1、筛选被阻塞的数据

     WITH    CTE_SID2( 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_SID2 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_SID2 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

    或者执行如下SQL,找到blocking_session_id

    SELECT sqltext.TEXT, req.session_id, req.status, req.command, req.cpu_time, req.blocking_session_id, req.total_elapsed_time
    FROM sys.dm_exec_requests req (NOLOCK)
    CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS sqltext where blocking_session_id>0

    2.根据spid查询具体的SQL语句

    dbcc inputbuffer(59);

    3.直接执行kill或分析原因

    参考资料:https://blog.csdn.net/Ruishine/article/details/116698990

                     https://www.cnblogs.com/zhuque/archive/2012/11/08/2763343.html

  • 相关阅读:
    string用法
    动手动脑
    你已经创建了多少个对象?
    动手动脑
    课程作业2
    课程作业1
    课程作业2
    《大道至简》第一章观后感
    java虚拟机内存区域
    Gitbook安装使用教程
  • 原文地址:https://www.cnblogs.com/gaobing/p/15892265.html
Copyright © 2020-2023  润新知