如何在 Sql server 2008 中安排作业不到 10 秒?

Mus*_*yed 8 sql-server-2008 sql-server jobs

我想每 3 秒运行一次作业,但是在 SQL Server 2008 中我们不能定义小于 10 秒的间隔。

该作业用于将访问者信息和细分信息插入/更新到由谷歌搜索跟踪的数据库中。

在 2 或 3 秒内最多插入大约 100 行。该作业插入并更新数据库中的表。有没有办法使用sp作业调度配置来调度它?

Han*_*non 12

创建一个计划每分钟启动的作业。让工作做一些类似的事情:

WHILE 1=1
BEGIN
    EXEC dbo.SomeProcedure; /*  this would be the 
        name of a stored procedure that does the 
        actual work */
    WAITFOR DELAY '00:00:03.000';
END
Run Code Online (Sandbox Code Playgroud)


jya*_*yao 5

我认为这个答案不正确。原因如下:假设 dbo.SomeProcedure 将运行 2 秒,并在上午 10:00:00 开始,然后在该过程完成后,它将再等待 3 秒,然后再次重新启动,即在上午 10:00:02 ,结束了,要到上午10:00:05才会开始。如果我们真的可以安排作业每 3 秒运行一次,则 dbo.SomeProcedure 确实会在上午 10:00:00 和上午 10:00:03 运行,依此类推。比较准确的应该是下面这个:

    WHILE 1=1
    BEGIN
      EXEC dbo.SomeProcedure; /*  this would be the 
      name of a stored procedure that does the actual work */

      WHILE datediff(second, @dt, getdate())%3 <> 0
        WAITFOR DELAY '00:00:00.100'; -- can be made it to '00:00:00.001'
   END
Run Code Online (Sandbox Code Playgroud)