首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server Agent 作業監控腳本:即時檢視執行中作業與當前步驟

     編輯:關於SqlServer

用途

快速查詢 SQL Server Agent 當前正在執行的作業、所在步驟、執行命令與請求來源,輔助 DBA 即時排查長時間執行或卡住的作業。

監控腳本

BEGIN
    DECLARE @jobstatus TABLE(
        Job_ID UNIQUEIDENTIFIER,
        Last_Run_Date INT,
        Last_Run_Time INT,
        Next_Run_Date INT,
        Next_Run_Time INT,
        Next_Run_Schedule_ID INT,
        Requested_To_Run INT,
        Request_Source INT,
        Request_Source_ID VARCHAR(100),
        Running INT,
        Current_Step INT,
        Current_Retry_Attempt INT,
        State INT
    );

    INSERT INTO @jobstatus
    EXEC MASTER.dbo.xp_sqlagent_enum_jobs 1, 'garbage';

    SELECT DISTINCT
        CASE State
            WHEN 1 THEN 'Job is Executing'
            WHEN 2 THEN 'Waiting for thread to complete'
            WHEN 3 THEN 'Between retries'
            WHEN 4 THEN 'Job is Idle'
            WHEN 5 THEN 'Job is suspended'
            WHEN 7 THEN 'Performing completion actions'
        END AS State,
        sj.name AS JobName,
        CASE WHEN ej.running = 1 THEN st.step_id ELSE 0 END AS CurrentStepID,
        CASE WHEN ej.running = 1 THEN st.step_name ELSE 'not executing' END AS CurrentStepName,
        st.command AS StepCommand,
        ej.request_source_id AS RequestSource
    FROM @jobstatus ej
    JOIN msdb..sysjobs sj ON sj.job_id = ej.job_id
    JOIN msdb..sysjobsteps st ON st.job_id = ej.job_id 
        AND (st.step_id = ej.current_step OR ej.current_step = 0)
    WHERE ej.running + 1 > 1;  -- 僅顯示正在執行的作業
END;

欄位說明

  • State:作業當前狀態文字描述。
  • JobName:作業名稱。
  • CurrentStepID / CurrentStepName:正在執行的步驟號與名稱。
  • StepCommand:該步驟的 T-SQL / CmdExec / PowerShell 命令全文。
  • RequestSource:觸發來源 (排程、使用者手動、警示等)。

參考來源

https://webnesbay.com/sql-server-jobs-monitoring-script/

部署建議

  • 建立為預存程序 dbo.usp_MonitorRunningJobs,排程每分鐘執行並寫入記錄表。
  • 搭配 sp_whoisactive 或 dm_exec_requests 進一步關聯等待資源與阻塞鏈。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved