查詢作業歷史記錄中的異常日誌
要查詢作業歷史記錄中的異常日誌,通常需要篩選出那些失敗的作業步驟。作業步驟的執行結果可以從 msdb.dbo.sysjobhistory 表中的 run_status 欄位來判斷,其中:
0 表示作業失敗
1 表示作業成功
2 表示作業重試
3 表示作業已取消
4 表示作業正在進行中
T-SQL語法直接查詢
可以使用以下查詢來篩選特定日期範圍內的異常(失敗)的作業歷史記錄,同時顯示和計算筆數:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
DECLARE @StartDate DATETIME = '2024-05-01'; DECLARE @EndDate DATETIME = '2024-05-02'; -- 篩選並顯示異常記錄 SELECT sj.name AS JobName, sjh.run_date, sjh.run_time, sjh.run_duration, sjh.step_name, sjh.message, sjh.run_status FROM msdb.dbo.sysjobhistory sjh JOIN msdb.dbo.sysjobs sj ON sj.job_id = sjh.job_id WHERE sjh.run_status = 0 AND -- 篩選出失敗的作業步驟 CAST(CAST(sjh.run_date AS CHAR(8)) AS DATE) BETWEEN @StartDate AND @EndDate ORDER BY sjh.run_date, sjh.run_time; -- 計算異常記錄筆數 SELECT COUNT(*) AS RecordCount FROM msdb.dbo.sysjobhistory sjh JOIN msdb.dbo.sysjobs sj ON sj.job_id = sjh.job_id WHERE sjh.run_status = 0 AND -- 篩選出失敗的作業步驟 CAST(CAST(sjh.run_date AS CHAR(8)) AS DATE) BETWEEN @StartDate AND @EndDate; |