1 --查询是否存在阻塞信息
2 select bl.spid blocking_session,bl.blocked blocked_session,st.text blockedtext from (SELECT spid ,blocked
3 FROM (SELECT * FROM sys.sysprocesses WHERE blocked>0 ) a
4 WHERE not exists(SELECT *
5 FROM (SELECT *
6 FROM sys.sysprocesses
7 WHERE blocked>0 ) b
8 WHERE a.blocked=spid)
9 union SELECT spid,blocked
10 FROM sys.sysprocesses
11 WHERE blocked>0) bl,(SELECT t.text ,c.session_id
12 FROM sys.dm_exec_connections c
13 CROSS APPLY sys.dm_exec_sql_text (c.most_recent_sql_handle) t) st
14 where bl.blocked = st.session_id
15
16 --查询阻塞信息中主题
17 select bl.spid blocking_session,bl.blocked blocked_session,st.text blockedtext,sb.text blockingtext
18 from
19 (SELECT spid ,blocked
20 FROM (SELECT * FROM sys.sysprocesses WHERE blocked>0 ) a
21 WHERE not exists(SELECT *
22 FROM (SELECT *
23 FROM sys.sysprocesses
24 WHERE blocked>0 ) b
25 WHERE a.blocked=spid)
26 union
27 SELECT spid,blocked
28 FROM sys.sysprocesses
29 WHERE blocked>0) bl,
30 (SELECT t.text ,c.session_id
31 FROM sys.dm_exec_connections c
32 CROSS APPLY sys.dm_exec_sql_text (c.most_recent_sql_handle) t) st,
33 (SELECT t.text ,c.session_id
34 FROM sys.dm_exec_connections c
35 CROSS APPLY sys.dm_exec_sql_text (c.most_recent_sql_handle) t) sb
36 where bl.blocked = st.session_id and bl.spid = sb.session_id
37
38 --查询表进程死锁情况
39 select *
40 from master..SysProcesses
41 where db_Name(dbID) = 'EFINTERFACE'
42 and spId <> @@SpId
43 and dbID <> 0
44 and blocked >0;