日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

使用T-SQL找出执行时间过长的作业

發(fā)布時(shí)間:2023/12/4 数据库 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用T-SQL找出执行时间过长的作业 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

??? 有些時(shí)候,有些作業(yè)遇到問題執(zhí)行時(shí)間過長(zhǎng),因此我寫了一個(gè)腳本可以根據(jù)歷史記錄,找出執(zhí)行時(shí)間過長(zhǎng)的作業(yè),在監(jiān)控中就可以及時(shí)發(fā)現(xiàn)這些作業(yè)并盡早解決,代碼如下:

?

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 --作業(yè)有開始 AND sja.stop_execution_date IS NULL --作業(yè)沒結(jié)束 AND sja.start_execution_date>DATEADD(DAY,-2,GETDATE()) --作業(yè)2天內(nèi)開始 -- AND DATEDIFF (SECOND ,sja.start_execution_date,GETDATE() )>ja.AvgRuntimeOnSucceed *1.5 --作業(yè)執(zhí)行時(shí)間比歷史平均時(shí)間超了50%"

?

??? 如果作業(yè)經(jīng)常出現(xiàn)問題,可以使用該腳本監(jiān)控盡早發(fā)現(xiàn)問題。

總結(jié)

以上是生活随笔為你收集整理的使用T-SQL找出执行时间过长的作业的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。