如何防止Sql Server作业同时运行

时间:2010-10-19 12:54:56

标签: sql-server concurrency sql-server-agent

我的SQL代理中有一些预定的作业:

  • Job1,每2分钟执行一次
  • Job2,每10分钟执行一次
  • Job3,每15分钟执行一次

如您所见,多个作业可以同时运行。当这些作业同时运行时,会导致CPU使用率达到100%。

有解决方案吗?有没有办法控制同时运行的作业数量?注意:我需要这些作业在适当的时间内运行大约

1 个答案:

答案 0 :(得分:12)

通过sp_getapplock

使用会话锁定

您要求用户控制并发,这通常是最佳方式。

如果锁定已被另一个作业保留,则允许您等待或中止。我们在一个或两个地方使用它来阻止多个用户强制执行相同的任务来重叠。效果很好。