请参阅此相关查询:什么是可视化 SQL 代理作业的好工具?
然而,我并不追求视觉工具,因为我正在寻找建立自己的可视化。这是我的出发点,但你会同意它非常缺乏。
select TOP(1000)
h.run_date, min(h.run_time), j.name, j.description, max(h.run_duration) run_duration
from msdb..sysjobhistory h
join msdb..sysjobs j on j.job_id = h.job_id
group by h.run_date, j.name, j.description, h.instance_id, j.job_id
having max(h.run_duration) > 1000 -- << -- 10 minutes encoded in HHMMSS (digits)
order by h.run_date desc, 2 desc
关键在于,似乎没有sysjobhistory
表的键将其标识为 a 的特定“实例” sysjob
。例如,在 12:30 开始的具有 4 个步骤的作业被插入sysjobhistory
4 次,具有不同的instance_ids(唯一)。它们都与sysjob.job_id
值相关,但这是时间表,而不是作业的调用。我应该看另一张桌子吗?
这可能相当简单,因为 SSMS 可以轻松完成。
您只需要过滤 step_id = 0 的位置,这是作业结果并具有总运行持续时间。