我原本寫過一個監控系統,主要是用來郵件提示job失敗的信息,但是最近發生個異常,某job運行死鎖整整運行6天將重要的系統弄癱瘓了
於是想寫個sql來檢測當前運行的job那些已運行一小時以上
原本sysjobhistory中有個run_status 據說值為4的時候就是正在運行,可是,實際操作卻完全沒用,請各位幫幫指正,指點迷津,感激不盡~~~
------解决方案--------------------
- SQL code
--1USE msdb ;GOEXEC dbo.sp_help_jobactivity ;GO--2select * from msdb.dbo.sysjobactivity where datediff(hh,start_execution_date ,stop_execution_date) > 1
------解决方案--------------------
select *
from jobhistory
where
run_duration/10000 >1
------解决方案--------------------