我正在使用SQL Server 2008.使用代理,我创建了一个作业并安排它每分钟执行一次。 该作业执行一个存储过程,将数据从表XXX移动到临时表,最后移动到表YYY。
执行作业可能需要一分多钟 - 因为数据相当大。
即使第一个实例仍在运行,是否会启动第二个作业实例?
如果是这样,我应该在临时表(状态= 1)中标记记录,以表明这些记录是由上一个作业实例处理的吗?
我有办法检查当前正在运行的作业实例,以便我不会启动该作业的第二个实例吗?
还有其他解决方法我不知道吗? (吞吐量很重要)
答案 0 :(得分:3)
任何时候只能运行一个特定作业的一个实例。
因此,在第一个工作停止之前,不需要采取任何特别的预防措施来防止同一工作的另一次执行。
答案 1 :(得分:0)
查看此帖子
如何防止SQL Server作业同时运行
How to Prevent Sql Server Jobs to Run simultaneously
以及这里
运行工作
http://technet.microsoft.com/en-us/library/aa213815(v=sql.80).aspx
如果作业已根据其计划启动,则在计划作业完成之前,您无法在同一服务器上启动该作业的另一个实例。在多服务器环境中,每个目标服务器可以同时运行同一作业的一个实例。