_覓 | 覦覈襦 | 豕蠏手 | 殊螳 | 譯殊碁 |
FrontPage › BatchWindow
|
|
... 2000覯 襷..
れ 襷れ伎 ... IF object_id('usp_batch_window') IS NOT NULL DROP proc usp_batch_window go CREATE proc usp_batch_window @unit int = 10 --覿 , @OPTION tinyint = 0 --0:豌, 1:螻蠏碁9 , @time char(5) = NULL AS /* : --殊 豌企慨蠍 exec usp_batch_window 15, 0 --殊 30覿襦 豌企慨蠍 exec usp_batch_window 30, 0 --殊 蠏碁9 襦 覲願鍵 exec usp_batch_window 15, 1 --轟螳 ろ 覲願鍵 exec usp_batch_window 15, 0, '06:35' --企覃 exec usp_batch_window -1, 0, '06:35' */ IF @unit <= 0 begin SELECT case when @unit = 0 then '企 覃豢! 0朱 蠍 る! 1伎 螳 ロ!' else '襷企(-)襯 ロ覃 覲願 伎手~' end 覃讌 RETURN end SELECT name , job_id , step_name , job_name , step_id , exec_begin_time , max_run_duration INTO #temp FROM ( SELECT min(job_name) job_name , job_id , min(name) name , min(step_name) step_name , min(step_id) step_id , min(exec_begin_time) exec_begin_time , max(run_duration) max_run_duration FROM ( SELECT a.name + '(' + b.step_name + ')' job_name , a.name , a.job_id , b.step_name , b.step_id , LEFT(RIGHT('000000' + cast(c.next_run_time AS varchar(8)), 6),2) + ':' + substring(RIGHT('000000' + cast(c.next_run_time AS varchar(8)), 6), 3, 2) exec_begin_time , b.run_duration FROM msdb..sysjobs a INNER JOIN msdb..sysjobhistory b ON a.job_id = b.job_id INNER JOIN msdb..sysjobschedules c ON a.job_id = c.job_id WHERE b.step_id > 0 AND a.enabled = 1 --2005伎 覯 譟郁唄 企豪 貉殊 . --AND c.freq_type = 4 --AND c.freq_subday_interval = 0 ) t GROUP BY job_id , job_name , step_id , exec_begin_time ) t --金撃もモр --declare @unit tinyint --set @unit = 1 SELECT name 覈 , step_name 螻覈 , step_id 螻 , exec_begin_time ろ螳 , exec_end_time ろ譬襭螳 , replicate('', datediff(mi, case when @OPTION = 0 then '00:00' else begin_time end, exec_begin_time) / @unit) + replicate('', case when datediff(mi, exec_begin_time, exec_end_time) / @unit = 0 then 1 else datediff(mi, exec_begin_time, exec_end_time) / @unit end) + '(' + cast(sec_run_duration AS varchar(6)) + ')' 谿 FROM ( SELECT name , step_name --, job_name , step_id --, exec_begin_time , begin_time , RIGHT(convert(char(16), dateadd(ss, acc_run_duration - max_run_duration, exec_begin_time + ':00'), 121), 5) exec_begin_time , RIGHT(convert(char(16), dateadd(ss, acc_run_duration, exec_begin_time + ':00'), 121), 5) exec_end_time , case when acc_run_duration/60 < 60 then 1 else acc_run_duration/60 end acc_run_duration , case when max_run_duration/60 < 60 then 1 else max_run_duration/60 end min_run_duration , max_run_duration sec_run_duration FROM ( SELECT name , step_name , job_name , step_id , exec_begin_time , (SELECT min(exec_begin_time) FROM #temp where a.job_id = job_id) begin_time , max_run_duration , (SELECT sum(max_run_duration) FROM #temp where a.job_id = job_id and a.step_id >= step_id) acc_run_duration FROM #temp a ) t ) t WHERE case when @time IS NULL then '00:00' else @time end BETWEEN case when @time IS NULL then '00:00' else exec_begin_time end AND case when @time IS NULL then '11:59' else exec_end_time end ORDER BY case when @OPTION = 0 then exec_begin_time else name end , case when @OPTION = 1 then step_id end go
鏤
|
覯碁 伎朱襦 蟾讌 讌 狩 覦覯企. |