【发布时间】:2010-10-26 06:55:22
【问题描述】:
如果您安排 SQL Server 作业每 X 分钟运行一次,并且它在 # of minutes 结束之前没有完成上一次调用,它会跳过运行,因为它已经在运行,还是会运行两次执行相同步骤的作业实例?
【问题讨论】:
标签: sql sql-server scheduled-tasks sql-server-agent
如果您安排 SQL Server 作业每 X 分钟运行一次,并且它在 # of minutes 结束之前没有完成上一次调用,它会跳过运行,因为它已经在运行,还是会运行两次执行相同步骤的作业实例?
【问题讨论】:
标签: sql sql-server scheduled-tasks sql-server-agent
SQL Server 代理在开始新的迭代之前检查作业是否已经在运行。如果您有长时间运行的作业并且它的时间表出现了,它将被跳过,直到下一个间隔。
您可以自己尝试一下。如果您尝试启动一个已经在运行的作业,您将收到一个错误。
【讨论】:
如果它正在运行,我很确定它会跳过它。
【讨论】:
您使用的是哪个版本的 SQL Server?这似乎是一件很容易测试的事情。设置其中包含 WAITFOR 的作业,将单行插入表中,并将作业设置为快速连续运行两次(比 WAITFOR DELAY 短)。
在 SQL Server 2005 中运行此类测试时,它会跳过重叠的运行。
【讨论】: