>  기사  >  데이터 베이스  >  SQL Server 任务监控脚本

SQL Server 任务监控脚本

WBOY
WBOY원래의
2016-06-07 14:55:091622검색

http://webnesbay.com/sql-server-jobs-monitoring-script/ SQL Server BEGIN DECLARE @jobstatusTABLE(Job_ID uniqueidentifier, Last_Run_Date int, Last_Run_Time int, Next_Run_Date int, Next_Run_Time int,Next_Run_Schedule_ID int, Requested_To_Run

http://webnesbay.com/sql-server-jobs-monitoring-script/ SQL Server
BEGIN

 
DECLARE @jobstatus

TABLE(Job_ID uniqueidentifier, Last_Run_Date int, Last_Run_Time int, Next_Run_Date int,

    Next_Run_Time int,Next_Run_Schedule_ID int, Requested_To_Run int,

    Request_Source int, Request_Source_ID varchar(100),

Running int, Current_Step int, Current_Retry_Attempt int, State int)

INSERT INTO @jobstatus

EXEC MASTER.dbo.xp_sqlagent_enum_jobs 1,garbage
 
                BEGIN

                SELECT DISTINCT CASE
                   WHEN state=1 THEN 'Job is Executing'
                   WHEN state=2 THEN 'Waiting for thread to complete'
                   WHEN state=3 THEN 'Between retries'
                   WHEN state=4 THEN 'Job is Idle'
                   WHEN state=5 THEN 'Job is suspended'
                   WHEN state=7 THEN 'Performing completion actions'
 
                END AS State,sj.name,

                CASE WHEN ej.running=1 THEN st.step_id ELSE 0 END AS currentstepid,
                CASE WHEN ej.running=1 THEN st.step_name ELSE 'not executing' END AS currentstepname,

                st.command, ej.request_source_id

                FROM @jobstatus ej join msdb..sysjobs sj ON sj.job_id=ej.job_id

                JOIN msdb..sysjobsteps st ON st.job_id=ej.job_id AND (st.step_id=ej.current_step or ej.current_step=0)

                WHERE ej.running+1>1

                END

END
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.