0

我正在使用 SQL Server 2008。使用代理,我创建了一个作业并安排它每分钟执行一次。该作业执行一个存储过程,将数据从表 XXX 移到临时表,然后最终移到 YYY 表中。

作业的执行可能需要一分钟以上 - 因为数据相当大。

  1. 即使第一个实例仍在运行,是否会启动作业的第二个实例?

  2. 如果是这样,我是否应该在临时表(状态 = 1)中标记记录以指示这些记录正在由作业的先前实例处理?

  3. 有没有办法让我检查作业的实例当前正在运行,这样我就不会启动作业的第二个实例?

  4. 有没有我不知道的另一种解决方案?(吞吐量很重要)

4

2 回答 2

3

任何时候只能运行特定作业的一个实例。

因此,对于在第一个作业停止之前开始执行同一作业的另一次执行,无需采取任何特别的预防措施。

于 2011-03-30T09:36:54.670 回答
0

检查这篇文章
如何防止 Sql Server 作业同时运行

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

以及在这里
运行作业
http://technet.microsoft.com/en-us/library/aa213815(v=sql.80).aspx

如果作业已根据其计划启动,则在计划的作业完成之前,您无法在同一服务器上启动该作业的另一个实例。在多服务器环境中,每台目标服务器都可以同时运行同一作业的一个实例。

于 2014-01-13T16:26:16.413 回答