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

Sql server 如何防止Sql Server作业同时运行,sql-server,concurrency,sql-server-agent,Sql Server,Concurrency,Sql Server Agent,我的SQL代理中有一些计划作业: 作业1,每2分钟执行一次 作业2,每10分钟执行一次 作业3,每15分钟执行一次 如您所见,多个作业可以同时运行。当这些作业同时运行时,会导致CPU使用率达到100% 有解决办法吗?有没有办法控制并发运行的作业数?注意:我需要这些作业大约在适当的时间段内运行。通过使用会话锁 您要求用户控制并发,这通常是最好的方法 如果锁已由另一个作业持有,则允许您等待或中止。我们在一个或两个地方使用它来阻止多个用户强制同一任务重叠运行。它工作得很好。您可以使用互斥来防止一次

我的SQL代理中有一些计划作业:

  • 作业1,每2分钟执行一次
  • 作业2,每10分钟执行一次
  • 作业3,每15分钟执行一次
如您所见,多个作业可以同时运行。当这些作业同时运行时,会导致CPU使用率达到100%

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

通过使用会话锁

您要求用户控制并发,这通常是最好的方法


如果锁已由另一个作业持有,则允许您等待或中止。我们在一个或两个地方使用它来阻止多个用户强制同一任务重叠运行。它工作得很好。

您可以使用互斥来防止一次运行多个作业-您使用什么语言将SQL查询发送到DB?这些是SQL server代理中的作业。+1:Dam我希望几年前就知道了。以前,我一直在使用状态表来监视给定进程的当前状态,以此来推出我自己的解决方案。@John Sansom:很高兴为您服务。。。如果您可以使用事务锁,它也是自动释放的。