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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQL Server 語句日期格式查詢方法SQLServer
- SQL Server-簡單查詢語句SQLServer
- SQL Server 查詢歷史執行的SQL語句SQLServer
- SQL server資料庫表碎片比例查詢語句SQLServer資料庫
- sql查詢語句流程SQL
- SQL mother查詢語句SQL
- SQL查詢語句 (Oracle)SQLOracle
- postgresql dba常用sql查詢語句SQL
- 使用sql語句查詢平均值,使用sql語句查詢資料總條數, not in 篩選語句的使用SQL
- mysql查詢效率慢的SQL語句MySql
- SQL單表查詢語句總結SQL
- HighgoDB查詢慢SQL和阻塞SQLGoSQL
- 在mysql查詢效率慢的SQL語句MySql
- Laravel 框架查詢執行的 SQL 語句Laravel框架SQL
- SQL基礎的查詢語句烈鉍SQL
- Sql語句本身的優化-定位慢查詢SQL優化
- GaussDB SQL查詢語句執行過程解析SQL
- SQL 查詢語句的執行順序解析SQL
- 記一個實用的sql查詢語句SQL
- MySQL資料庫:7、SQL常用查詢語句MySql資料庫
- [20210112]ashtop查詢特定表的SQL語句.txtSQL
- mysql查詢語句MySql
- 一條 SQL 查詢語句是如何執行的?SQL
- MySql常用30種SQL查詢語句優化方法MySql優化
- [20201214]查詢隱式轉換的sql語句.txtSQL
- 20201214]查詢隱式轉換的sql語句.txtSQL
- sql-server高階查詢SQLServer
- Mysql之查詢語句MySql
- mysql查詢語句集MySql
- mysql查詢語句5:連線查詢MySql
- PostgreSQL 原始碼解讀(18)- 查詢語句#3(SQL Parse)SQL原始碼
- V$sql查詢未使用繫結變數的語句SQL變數
- Mysql 資料庫 -------- SQL語句進階查詢 ------- 前部分MySql資料庫
- Mysql常用sql語句(20)- 子查詢重點知識MySql
- 輸入的查詢 SQL 語句,是如何執行的?SQL
- JAVA 中使用 SQL 語句查詢 EXCEL 檔案資料JavaSQLExcel
- [20210113]ashtop查詢特定表的SQL語句2.txtSQL
- Sql Server 的引數化查詢SQLServer
- SQL Server 跨資料庫查詢SQLServer資料庫