SQL SERVER 檢視死鎖和阻塞的SQL語句

2022-06-30 17:24:08 字數 1822 閱讀 9872

--檢視死鎖

select

t1.resource_type

[資源鎖定型別],

db_name(resource_database_id) as

資料庫名,

t1.resource_associated_entity_id 鎖定物件,

t1.request_mode

as等待者請求的鎖定模式,

t1.request_session_id 等待者sid,

t2.wait_duration_ms 等待時間,

(select

text

from

sys.dm_exec_requests r

cross

where

r.session_id

=t1.request_session_id

) as等待者要執行的sql,

t2.blocking_session_id

[鎖定者sid],

(select

text

from

sys.sysprocesses p

cross

where

p.spid

=t2.blocking_session_id

) 鎖定者執行語句

from

sys.dm_tran_locks t1,

sys.dm_os_waiting_tasks t2

where

t1.lock_owner_address

=t2.resource_address

order

by t2.wait_duration_ms desc

--檢視正在阻塞的sql

select

top20

[session_id],

[request_id],

[start_time]as

'開始時間',

[status]as

'狀態',

[command]as

'命令',

dest.

[text]as

'sql語句

',

db_name([

database_id

]) as

'資料庫名',

[blocking_session_id]as

'正在阻塞其他會話的會話id',

[wait_type]as

'等待資源型別',

[wait_time]as

'等待時間',

[wait_resource]as

'等待的資源',

[reads]as

'物理讀次數',

[writes]as

'寫次數',

[logical_reads]as

'邏輯讀次數',

[row_count]as

'返回結果行數

'from sys.[

dm_exec_requests

]dm_exec_sql_text

](der.[

sql_handle

]) as

dest

where

[session_id

]>

50and

db_name(der.[

database_id

])='

seedlandcontractdb

'orderby[

cpu_time

]desc

SQL Server 檢視死鎖

use master goselect top 100 session id request id start time as 開始時間 status as 狀態 command as 命令 dest.text as sql語句 db name database id as 資料庫名 blockin...

SqlServer 檢視死鎖的程序

這個工具,用來檢視一些當時的執行狀態.和乾掉程序.但是這個工具只能檢視部分哪個表被鎖住了.也無法知道是哪個程序和sql導致了鎖程序.只能檢視一些其它的資訊.至於如何檢視死鎖的表,需要用到下面的sql.然後根據查出來的 程序id 去上面的工具中 檢視詳細資訊.可以檢視到引起死鎖的sql 檢視被鎖表 s...

SqlServer 檢視死鎖的程序

這個工具,用來檢視一些當時的執行狀態.和乾掉程序.但是這個工具只能檢視部分哪個表被鎖住了.也無法知道是哪個程序和sql導致了鎖程序.只能檢視一些其它的資訊.至於如何檢視死鎖的表,需要用到下面的sql.然後根據查出來的 程序id 去上面的工具中 檢視詳細資訊.可以檢視到引起死鎖的sql 檢視被鎖表 s...