在Sqlsever資料庫中,有時候操作資料庫過程中會進行鎖表操作,在鎖表操作的過程中,有時候會出現死鎖的情況出現,這時候可以使用SQL語句來查詢資料庫死鎖情況,主要通過系統資料庫Master資料庫來查詢,涉及到的系統數據表有dm_exec_requests、dm_exec_sessions、dm_e ...
在Sqlsever資料庫中,有時候操作資料庫過程中會進行鎖表操作,在鎖表操作的過程中,有時候會出現死鎖的情況出現,這時候可以使用SQL語句來查詢資料庫死鎖情況,主要通過系統資料庫Master資料庫來查詢,涉及到的系統數據表有dm_exec_requests、dm_exec_sessions、dm_exec_sql_text等幾個表。
SQL查詢語句如下:
SELECT es.session_id, database_name = DB_NAME(er.database_id), er.cpu_time, er.reads, er.writes, er.logical_reads, login_name, er.status, blocking_session_id, wait_type, individual_query = SUBSTRING (qt.text, er.statement_start_offset/2, (CASE WHEN er.statement_end_offset = -1 THEN LEN(CONVERT(NVARCHAR(MAX), qt.text)) * 2 ELSE er.statement_end_offset END - er.statement_start_offset)/2), parent_query = qt.text, program_name, host_name, nt_domain, start_time FROM sys.dm_exec_requests er INNER JOIN sys.dm_exec_sessions es ON er.session_id = es.session_id CROSS APPLY sys.dm_exec_sql_text(er.sql_handle)as qt WHERE es.session_id > 50 AND es.session_Id NOT IN (@@SPID) ORDER BY 1, 2
備註:原文轉載自 Sqlserver查看資料庫死鎖的SQL語句_IT技術小趣屋。