Просмотр зависших запросов MSSQL в том числе с блокировками

SELECT
r.start_time,
       p.spid
       , p.blocked
       , p.hostname
       , p.program_name
       , p.nt_username
       , r.command
       , r.status
       , CASE WHEN statement_start_offset = 0 THEN t.text
             ELSE (SELECT TOP 1 SUBSTRING(t.text,statement_start_offset / 2+1 , 
             ((CASE WHEN statement_end_offset = -1 THEN (LEN(CONVERT(nvarchar(max),t.text)) * 2) 
     ELSE statement_end_offset END) - statement_start_offset) / 2+1)) 
       END AS sql_statement
       , t.text raw_text
       , r.blocking_session_id
       , r.wait_time
       , r.wait_type
       , r.wait_resource
       , r.last_wait_type
       ,r.logical_reads
       ,qp.query_plan
,r.sql_handle 
FROM sys.dm_exec_requests r
INNER JOIN sys.sysprocesses p
       ON p.spid = r.session_id
CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) AS t
CROSS APPLY sys.dm_exec_query_plan(r.plan_handle) qp
ORDER BY
p.spid

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *