SQL SERVER代理作业间隔到秒级解决方案

来源:互联网 发布:发票软件怎么使用方法 编辑:程序博客网 时间:2024/06/11 05:28

SQL SERVER代理作业间隔到秒级解决方案

 作者:敖士伟 ikmb@163.com

SQL SERVER代理作业间隔最小到分。

一、网上流传的方案:

建一个每分钟的作业再加上While+wait for

如:

declare @i int  
set   @i=0  
while   @i<2  
 begin  
  exec('delete from tbMSG where datediff(s,dt_MSG_InsertTime,getdate())>120')
  waitfor delay '00:00:30'
  set @i=@i+1  
 end

 

问题:这个方案看起来是没什么问题,但是会导致整个作业每两分钟执行一次。

 

二、

我的笨方案:

每一分钟要执行几次就写几个独立作业,再结合wait for

如:每20s执行一次:

1.delete from tbMSG where datediff(s,dt_MSG_InsertTime,getdate())>30

2.waitfor delay '00:00:20'

delete from tbMSG where datediff(s,dt_MSG_InsertTime,getdate())>30

3. waitfor delay '00:00:40'

delete from tbMSG where datediff(s,dt_MSG_InsertTime,getdate())>30

原创粉丝点击