zoukankan      html  css  js  c++  java
  • 使用T-SQL找出执行时间过长的作业

        有些时候,有些作业遇到问题执行时间过长,因此我写了一个脚本可以根据历史记录,找出执行时间过长的作业,在监控中就可以及时发现这些作业并尽早解决,代码如下:

     

    SELECT sj.name
       , sja.start_execution_date,DATEDIFF (SECOND ,sja.start_execution_date,GETDATE() ) AS ExecutedMin,ja.AvgRuntimeOnSucceed
    FROM msdb.dbo.sysjobactivity AS sja
    INNER JOIN msdb.dbo.sysjobs AS sj ON sja.job_id = sj.job_id INNER
    join
    (
        SELECT job_id,
        AVG
        ((run_duration/10000 * 3600) + ((run_duration%10000)/100*60) + (run_duration%10000)%100)
        +
        NULLIF(0,STDEV
        ((run_duration/10000 * 3600) + ((run_duration%10000)/100*60) + (run_duration%10000)%100)) AS 'AvgRuntimeOnSucceed'
         FROM msdb.dbo.sysjobhistory
        WHERE step_id = 0 AND run_status = 1
        GROUP BY job_id) ja 
        ON sj.job_id = ja.job_id
    WHERE sja.start_execution_date IS NOT NULL --作业有开始
       AND sja.stop_execution_date IS NULL --作业没结束
       AND sja.start_execution_date>DATEADD(DAY,-2,GETDATE()) --作业2天内开始
      -- AND DATEDIFF (SECOND ,sja.start_execution_date,GETDATE() )>ja.AvgRuntimeOnSucceed *1.5 --作业执行时间比历史平均时间超了50%"

     

        如果作业经常出现问题,可以使用该脚本监控尽早发现问题。

  • 相关阅读:
    P3704 [SDOI2017]数字表格
    CF 700 E. Cool Slogans
    杜教筛学习笔记
    [BOI2004]Sequence 数字序列(左偏树)
    [WC2007]剪刀石头布(最大流)
    [NOI2009]变换序列(二分图匹配)
    文理分科(最小割)
    上帝与集合的正确用法(欧拉定理)
    [HAOI2008]圆上的整点(数论)
    主席树学习笔记
  • 原文地址:https://www.cnblogs.com/CareySon/p/5262311.html
Copyright © 2011-2022 走看看