【发布时间】:2013-01-03 17:58:16
【问题描述】:
我有一份工作每 5 分钟运行一次。每隔一段时间,如果我们的数据库负载很大,那么这项工作将花费更长的时间。然后该作业将不再运行,因为下一个计划时间已经过去。有没有办法让 SQL Server 解决这个问题,以便即使在其中一次长时间运行之后它也能再次运行?
【问题讨论】:
-
我会看看这个帖子:stackoverflow.com/questions/1200527/…我知道你没有“超时”,但是你正在重叠你的时间,这对我来说听起来应该更多地分解或分散工作进一步分开。因此,不要为您提出的问题找到解决方案,而是尝试从这个角度解决它。
-
@ammills01 太好了,谢谢。我正在运行一个 Windows 应用程序来完成这项工作,所以我无法进一步分解它。我只是使用了 SQL 的调度程序,因为 Windows 任务调度程序不允许每天多次调度任务。也许我应该研究一个不同的调度工具?
-
我没有使用它,但我只是在我的 Windows 7 机器上打开了任务计划程序,如果我创建一个新任务并进入触发器,我可以将任务设置为“按计划”,每天,并且有一个“高级设置”部分,我可以选择每 5 分钟重复一次任务。此外,在“设置”下还有一个选项可以在错过任务时尽快运行。
-
@ammills01 太棒了,这就解释了。我们的服务器运行的是 Windows Server 2003,并且没有“如果错过就尽快运行任务”的选项。我将不得不研究另一种解决方案。我可能不得不在我的程序本身中添加调度逻辑,让它运行一整天。
-
@nfw 看起来你可以schedule multiple tasks daily with Windows Server 2003(使用
/st参数,并且很可能也使用GUI)。
标签: sql-server jobs