2012-10-31 10:38:36享利技術網

找出目前SQL正在執行的查詢

 

非常好用~~DB lag時馬上就知是誰造成的


SELECT 

     b.session_id 

    ,b.host_name  [主機名稱] 

    ,b.login_name [登入名稱] 

    ,a.status  [執行狀態] 

    ,DB_NAME(database_id) AS [資料庫名稱] 

    ,c.text AS [SQL指令] 

    ,b.program_name [執行程式名稱] 

    ,a.start_time   [SQL開始執行時間] 

    ,a.wait_type    [等待類別] 

    ,a.total_elapsed_time [執行時間] 

    ,a.cpu_time           [CPU時間] 

    ,a.logical_reads      [邏輯讀取] 

    ,a.open_transaction_count [目前執行SQL的transaction數目] 

    ,a.last_wait_type       [上次等待類別] 

    FROM sys.dm_exec_requests AS a 

    INNER JOIN sys.dm_exec_sessions AS b ON b.session_id = a.session_id 

    CROSS APPLY sys.dm_exec_sql_text( a.sql_handle) AS c 

    WHERE b.is_user_process=1 AND b.session_Id <> (@@SPID) 

    ORDER BY b.session_id