WITH SessionBlock AS
(
SELECT er.session_id, er.Blocking_session_id,
er.sql_handle AS [si_sql_handle],
er.plan_handle AS [si_plan_handle],
er.statement_start_offset AS [si_statement_start_offset],
er.statement_end_offset AS [si_statement_end_offset],
ec.most_recent_sql_handle AS [bsi_sql_handle],
es.last_request_start_time
FROM sys.dm_exec_requests er
INNER JOIN sys.dm_exec_sessions es
ON er.Blocking_session_id = es.session_id
INNER JOIN sys.dm_exec_connections ec
ON er.Blocking_session_id = ec.session_id
WHERE er.blocking_session_id > 50
)
SELECT session_id, Blocking_session_id,
SUBSTRING (sist.TEXT, (si_statement_start_offset/2)+1,
((CASE si_statement_end_offset WHEN -1 THEN datalength(sist.TEXT)
ELSE si_statement_end_offset END - si_statement_start_offset)/2) + 1 ) AS [si_query],
bsist.TEXT AS [bsi_query],
sb.last_request_start_time
FROM SessionBlock sb
CROSS APPLY sys.dm_exec_sql_text(sb.si_sql_handle) AS sist
CROSS APPLY sys.dm_exec_sql_text(sb.bsi_sql_handle) AS bsist
沒有留言:
張貼留言