2013-02-11 3 views
6

SQL 작업이 실행되었거나 스케줄을 기반으로하지 않은 SQL 쿼리를 작성하려고합니다. 예를 들어, 작업이 오후 12시에 실행되도록 계획되어 있고 오후 12시 5 분이고 여전히 실행되지 않은 경우이를 알고 싶습니다. 그걸 탐지하는 최선의 방법은 무엇입니까?예약 된대로 실행되지 않은 작업을 검색합니다.

과거에는 SQL 작업이 정기적으로 실행되고 SQL Server에서 실행되지 않았습니다. 이를 방지하기 위해 SQL Server 2008 R2에 대한 쿼리를 실행하고 작업 실행 여부를 확인한 다음 실행되지 않은 경우 경고를 트리거하려고합니다.

도움 주셔서 감사합니다.

답변

1

당신은 문서화되지 않은 절차를

sys.xp_sqlagent_enum_jobs 

이 절차를 시도 할 수는 작업 마지막 실행 날짜와 시간을 반환합니다.

1

이 쿼리는 작업 실행 세부 정보를 알려줍니다.

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

작업 실행 상태 :

2 = 다시 시도를 성공

0 = 실패

1 =

3 = 취소됨

+1

정말 에이전트가 일정 작업을 건너 뛰었는지 알고 싶습니다. 이 쿼리는 작업이 성공했는지 여부를 알려줍니다. – Martin

0

어떤 작업이 영원한 것인지 더 잘 알아 내기. 이 쿼리를 실행 해보십시오.

select name from msdb.dbo.sysjobs where job_id not in (select job_id from sdb.dbo.sysjobhistory) and enabled = 1 

기본적으로 각 작업은 실행될 때 기록이 있어야합니다.

관련 문제