SQL Server中如何找出执行时间过长的作业



查询今天执行时间大于一分钟的作业


SELECT  j.name                        AS Job_Name        ,
        h.step_id                     AS Step_Id         ,
        h.step_name                   AS Step_Name       ,
        h.message                     AS Message         ,
        h.run_date                    AS Run_Date        ,
        h.run_time                    AS Run_Time        ,
        msdb.dbo.agent_datetime(h.run_date, h.run_time) 
                                    AS 'RunDateTime' ,
        CAST(run_duration / 10000 AS VARCHAR(2)) + N'小时'
        + CAST(( run_duration - run_duration / 10000 * 10000 ) / 100 AS VARCHAR(2)) + N'分钟'
        + SUBSTRING(CAST(run_duration AS VARCHAR(10)),
                            LEN(CAST(run_duration AS VARCHAR(10))) - 1, 2)  + N'秒'
        AS run_duration
FROM    msdb.dbo.sysjobhistory h
        LEFT JOIN msdb.dbo.sysjobs j ON h.job_id = j.job_id
WHERE   Run_Date = CAST(CONVERT(VARCHAR(8), GETDATE(), 112) AS INT)  --今天执行的作业
    AND h.run_status = 1    --执行成功
    AND h.run_duration > 100 --大于一分钟的作业
ORDER BY Job_Name, h.Step_Id



参考资料: SQL Server中如何找出执行时间过长的作业  http://www.studyofnet.com/news/1274.html


你可能感兴趣的:(数据库)