我正在嘗試編寫一個SQL查詢,它告訴我SQL作業是否已根據其計劃運行或未運行。例如,如果一項工作計劃在中午12點運行,而我們是下午12點05分,但仍然沒有運行,我想知道這一點。什麼是最好的方法來檢測?檢測未按計劃運行的作業
它發生在過去我們有SQL作業定期運行和SQL Server沒有運行它們。爲了防止這種情況發生,我們希望對SQL Server 2008 R2運行查詢並檢查作業是否運行,然後在未運行時觸發警報。
感謝您的幫助!
我正在嘗試編寫一個SQL查詢,它告訴我SQL作業是否已根據其計劃運行或未運行。例如,如果一項工作計劃在中午12點運行,而我們是下午12點05分,但仍然沒有運行,我想知道這一點。什麼是最好的方法來檢測?檢測未按計劃運行的作業
它發生在過去我們有SQL作業定期運行和SQL Server沒有運行它們。爲了防止這種情況發生,我們希望對SQL Server 2008 R2運行查詢並檢查作業是否運行,然後在未運行時觸發警報。
感謝您的幫助!
您可以嘗試無證程序
sys.xp_sqlagent_enum_jobs
此過程返回作業上次運行的日期和時間。
此查詢會告訴您作業運行的詳細信息。
Select hist.run_date,hist.run_status,hist.run_time
from msdb..sysjobs jb
inner join msdb..sysjobhistory hist
on jb.job_id = hist.job_id
where jb.name = 'MyJob'
按照SQL聯機圖書 http://msdn.microsoft.com/en-us/library/ms174997.aspx
run_status
作業執行的狀態:
0 =失敗
1 =成功
2 =重試
3 =取消
要更好地瞭解哪些工作沒有神經。嘗試運行此查詢。
select name from msdb.dbo.sysjobs where job_id not in (select job_id from sdb.dbo.sysjobhistory) and enabled = 1
默認情況下,每個作業在執行時應該有歷史記錄。
我真的很想知道代理是否跳過了計劃任務。此查詢會告訴我作業是否成功。 – Martin 2013-02-11 19:50:20