1. sysjobactivity 表
記錄當前 SQL Server Agent作業活動和狀態。
job_id :作業 ID
run_requested_date :請求運行作業的日期和時間
run_requested_source : 請求運行作業的要求者。 1 = SOURCE_SCHEDULER,4 = SOURCE_USER
start_execution_date :計劃運行作業的日期和時間
job_history_id : 用於標識 sysjobhistory 表中的行。
next_scheduled_run_date :計划下一次運行作業的日期和時間。
2. sysjobhistory 表
包含有關 SQL Server Agent執行預定作業的資訊
通俗易懂的說,就是記錄 job 執行的曆史情況,該表比較有用,能查看job執行的時間、狀態、完成資訊等。
job_id : job(作業) ID
step_id :job(作業)中的步驟ID,一個 job 中可以包含1個以上的步驟
step_name :步驟的名稱
message:job(作業)執行資訊,記錄job是否執行成功,如若失敗,則包含失敗資訊,十分的有用
run_status :作業的執行狀態,0 = 失敗,1 = 成功, 2 = 重試,3 - 已取消
run_data:作業或步驟開始執行的日期。
run_time:作業火步驟開始的時間
run_duration:執行作業或步驟所花費的時間,十分有用,單位是毫秒
3. sysjobs 表
SQL Server Agent執行的各個預定作業的資訊
job_id:作業的唯一ID
name:作業的名稱
enabled:作業是否被啟用
description:作業的說明資訊
start_step_id:執行作業的其實步驟 ID
category_id:作業類別的ID
delete_level:指示在何種情況下應在作業完成時刪除作業 0 = 從不,1 = 成功時,2 = 作業失敗時,3 = 作業完成時
data_created:作業的建立日期
date_modified:上次修改作業的日期
version_number:作業版本
4. sysjobservers 表
MSDN:儲存特定作業與一個或多個目標伺服器的關聯或關係。
個人感覺,就是儲存 作業(job) 最後一次執行的詳情,此表對於觀察job執行的最新資訊,比較方便
job_id:作業標識號
last_run_outcome:作業上次啟動並執行結果,0 = 成功,1 - 失敗 , 3 - 取消
last_run_message:與 last_run_outcome 列關聯的訊息
last_run_date:上次作業啟動並執行日期
last_run_time:上次作業啟動並執行時間
last_run_duration:上次作業啟動並執行期間
5. sysjobschedules 表
job(作業)下次執行的時間資訊
schedule_id :計劃ID
job_id:作業ID
next_run_date:計劃運行作業的下一個日期
next_run_time:計劃運行作業的時間
6. sysjobsteps 表
包含 SQL Server Agent要執行的作業中的各個步驟的資訊。
job_id :作業的 ID
step_id:作業中的步驟 ID
step_name:作業步驟的名稱
command:subsystem 要執行的命令,重要,可以直接得到步驟要執行的sql命令
last_run_duration :該步驟上次運行時的期間
7. sysjobstepslogs 表
包含所有 SQL Server Agent作業步驟的作業步驟日誌,這些作業步驟配置為將作業步驟輸出寫入表中
log_id :作業步驟日誌的ID
log:作業步驟日誌的內容
date_created:建立作業步驟日誌的日期和時間
log_size :作業步驟日誌的大小
實戰,獲得最新作業(job)執行資訊:
select top 150 a.run_date,a.run_time, b.name,step_id,step_name,a.message,a.run_status,a.run_duration
from msdb.dbo.sysjobhistory a ,msdb.dbo.sysjobs b
where a.job_id=b.job_id and name not in('job_exclude') and a.step_id>0
order by run_date desc
相關文章:
Sql Server 系統資料表分析(1) - 備份表
Sql Server 監控 Job 執行情況