我的 SQL 代理中有一些预定的作业:
- Job1,每 2 分钟执行一次
- Job2,每 10 分钟执行一次
- Job3,每 15 分钟执行一次
如您所见,多个作业可以同时运行。当这些作业同时运行时,会导致 CPU 使用率达到 100%。
有解决办法吗?有没有办法控制同时运行的作业数量?注意:我需要这些作业大约在适当的时期内运行。
我的 SQL 代理中有一些预定的作业:
如您所见,多个作业可以同时运行。当这些作业同时运行时,会导致 CPU 使用率达到 100%。
有解决办法吗?有没有办法控制同时运行的作业数量?注意:我需要这些作业大约在适当的时期内运行。
通过sp_getapplock使用会话锁
您要求用户控制的并发性,这通常是最好的方法。
如果锁已被另一个作业持有,这允许您等待或中止。我们在一两个地方使用它来阻止多个用户强制相同的任务重叠运行。它运作良好。