日期:2014-05-17  浏览次数:20503 次

【SSIS】查詢當前正在運行的job
我原本寫過一個監控系統,主要是用來郵件提示job失敗的信息,但是最近發生個異常,某job運行死鎖整整運行6天將重要的系統弄癱瘓了

於是想寫個sql來檢測當前運行的job那些已運行一小時以上

原本sysjobhistory中有個run_status 據說值為4的時候就是正在運行,可是,實際操作卻完全沒用,請各位幫幫指正,指點迷津,感激不盡~~~


------解决方案--------------------

--1
USE msdb ;
GO

EXEC dbo.sp_help_jobactivity ;
GO

--2
select * 
from msdb.dbo.sysjobactivity 
where datediff(hh,start_execution_date ,stop_execution_date) > 1




开始,结束时间可以查看。 



------解决方案--------------------
select *
from jobhistory
where 
run_duration/10000 >1
------解决方案--------------------
引用:
引用:
SQL code

--1
USE msdb ;
GO

EXEC dbo.sp_help_jobactivity ;
GO

--2
select *
from msdb.dbo.sysjobactivity
where datediff(hh,start_execution_date ,stop_execution_date) > 1

……


正在执行的,LZ可以查看其中的开始时间与当前getdate()之间的差值了。