Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Find long running requests while they're still running
- DECLARE @intTooLong INT = 10000
- --(in ms) longer than 10 secs
- SELECT D.text SQLStatement,
- A.Session_ID SPID,
- ISNULL(B.status, A.status) Status,
- DATEDIFF(minute, A.last_request_start_time, getdate()) AS RunningMinutes,
- A.login_name Login,
- A.host_name HostName,
- C.BlkBy,
- DB_NAME(B.Database_ID) DBName,
- B.command,
- ISNULL(B.cpu_time, A.cpu_time) CPUTime,
- ISNULL(( B.reads + B.writes ), ( A.reads + A.writes )) DiskIO,
- A.last_request_start_time LastBatch,
- A.program_name
- FROM sys.dm_exec_sessions A
- LEFT JOIN sys.dm_exec_requests B
- ON A.session_id = B.session_id
- AND B.total_elapsed_time > @intTooLong
- LEFT JOIN (
- SELECT A.request_session_id SPID,
- B.blocking_session_id BlkBy
- FROM sys.dm_tran_locks AS A
- INNER JOIN sys.dm_os_waiting_tasks AS B
- ON A.lock_owner_address = B.resource_address
- ) C
- ON A.Session_ID = C.SPID
- CROSS APPLY sys.dm_exec_sql_text(sql_handle) D
- WHERE A.is_user_process = 1
- AND A.Session_ID != @@SPID
- AND ISNULL(B.status, A.status) != 'sleeping';
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement