Skip to main content

How to check current running process on MS SQL Server

SELECT er.session_id, er.status, er.command, db_name(er.database_id) [Database], st.text 
FROM sys.dm_exec_requests er 
CROSS APPLY sys.dm_exec_sql_text(er.sql_handle) st 
WHERE er.session_id > 50 and session_id <> @@SPID
  
SELECT
       r.cpu_time CPUTIME_Miliseconds,
       r.cpu_time * 0.001 CPUTIME_Seconds,
       r.total_elapsed_time * 0.001 TotalElapsedTime_Seconds,
       r.session_id
       ,st.TEXT AS batch_text
       ,SUBSTRING(st.TEXT, statement_start_offset / 2 + 1, (
                     (
                           CASE 
                                  WHEN r.statement_end_offset = - 1
                                         THEN (LEN(CONVERT(NVARCHAR(max), st.TEXT)) * 2)
                                  ELSE r.statement_end_offset
                                  END
                           ) - r.statement_start_offset
                     ) / 2 + 1) AS statement_text
       ,qp.query_plan AS 'XML Plan'
       ,r.*
FROM sys.dm_exec_requests r
CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) AS st
OUTER APPLY sys.dm_exec_query_plan(r.plan_handle) AS qp
WHERE session_id <> @@SPID
ORDER BY cpu_time DESC
 


Comments