2011-11-02 17:23:27享利技術網

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

包含是誰執行SQL,執行時間與BLOCK與Transaction的資訊  

 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 

來源http://ithelp.ithome.com.tw/question/10080871?tag=ithome.nq