3秒ごとにジョブを実行したいのですが、SQL Server 2008では、10秒未満の間隔を定義できません。
このジョブは、訪問者情報とセグメンテーション情報を、Google検索で追跡されるデータベースに挿入/更新するために使用されます。
2〜3秒で最大約100行が挿入されます。そのジョブは、データベースにテーブルを挿入して更新します。 spジョブスケジューリング構成を使用してスケジュールする方法はありますか?
毎分開始するようにスケジュールされたジョブを作成します。仕事に次のようなことをさせます:
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
この答えは正しいとは思いません。その理由は次のとおりです。dbo.SomeProcedureが2秒間実行され、午前10:00:00に開始するとします。その後、このプロシージャが終了した後、さらに3秒間待機してから再起動します。つまり、10:00:02amです。 、終了し、午前10:00:05まで開始しません。本当に3秒ごとに実行するようにジョブをスケジュールできたとしても、dbo.SomeProcedureは実際に10:00:00 amと10:00:03 amのように実行されます。より正確なものは次のとおりです。
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