sql server阻塞查询语句

sql server的阻塞查询,主要来自sysprocesses。通常我们在处理时需要加入其它相关的视图或表如dm_exec_connections,dm_exec_sql_text。通过几个语句的查询,可以找到阻塞的语句。
查询阻塞
语句一
select bl.spid blocking_session,bl.blocked blocked_session,st.text blockedtext from (SELECT   spid ,blocked
   FROM (SELECT * FROM sys.sysprocesses WHERE   blocked>0 ) a
   WHERE not exists(SELECT *
                    FROM (SELECT *
                          FROM sys.sysprocesses
                          WHERE   blocked>0 ) b
                    WHERE a.blocked=spid)
   union SELECT spid,blocked
         FROM sys.sysprocesses
         WHERE   blocked>0) bl,(SELECT t.text ,c.session_id
         FROM sys.dm_exec_connections c 
         CROSS APPLY sys.dm_exec_sql_text (c.most_recent_sql_handle) t) st
 where bl.blocked = st.session_id

语句二
SELECT a.blocking_session_id, a.wait_duration_ms, a.session_id,b.text
FROM sys.dm_os_waiting_tasks a,
(SELECT t.text ,c.session_id
FROM sys.dm_exec_connections c 
CROSS APPLY sys.dm_exec_sql_text (c.most_recent_sql_handle) t) b 
WHERE  a.session_id = b.session_id and a.blocking_session_id IS NOT NULL

语句三,包含阻塞与被阻塞的sql脚本

select bl.spid blocking_session,bl.blocked blocked_session,st.text blockedtext,sb.text blockingtext
from
(SELECT   spid ,blocked
   FROM (SELECT * FROM sys.sysprocesses WHERE   blocked>0 ) a
   WHERE not exists(SELECT *
                    FROM (SELECT *
                          FROM sys.sysprocesses
                          WHERE   blocked>0 ) b
                    WHERE a.blocked=spid)
   union
 SELECT spid,blocked
         FROM sys.sysprocesses
         WHERE   blocked>0) bl,
(SELECT t.text ,c.session_id
         FROM sys.dm_exec_connections c 
         CROSS APPLY sys.dm_exec_sql_text (c.most_recent_sql_handle) t) st,
(SELECT t.text ,c.session_id
         FROM sys.dm_exec_connections c 
         CROSS APPLY sys.dm_exec_sql_text (c.most_recent_sql_handle) t) sb
 where bl.blocked = st.session_id and bl.spid = sb.session_id

查询死锁
select *
   from master..SysProcesses
  where db_Name(dbID) = '数据库名'
    and spId <> @@SpId
    and dbID <> 0
    and blocked >0;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29371470/viewspace-2128282/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29371470/viewspace-2128282/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值