iT邦幫忙

DAY 24
6

SQL SERVER 2008效能監控與最佳化系列 第 24

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

使用DMV找出目前正在執行的查詢的相關訊息,包含是誰執行SQL,執行時間與BLOCK與Transaction的資訊。
執行以下程式碼可以找出的資訊:

  1. 是誰在執行,參照[主機名稱]與[登入名稱]。

  2. 執行SQL指令,參照[SQL指令]。

  3. 執行SQL指令的應用程式名稱,參照[執行程式名稱]。

  4. SQL指令目前執行多久,參照[執行時間]。

  5. BLOCK與Transaction的資訊,參照[目前執行SQL的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

執行結果:


上一篇
Day23_使用dmv找出被Blok最久的查詢
下一篇
Day25_Partition簡介01
系列文
SQL SERVER 2008效能監控與最佳化30

尚未有邦友留言

立即登入留言