如何按顺序运行SQL Server合并复制作业?

时间:2014-02-15 18:05:23

标签: sql-server sql-server-2008-r2 merge-replication

我使用一个使用Merge Replication的环境,每10分钟向6位订阅者发布十几个发布。当某些作业同时运行时,会遇到死锁和阻塞,并且复制过程效率不高。

我想创建一个SQL Server代理作业,该作业以特定顺序运行一组合并复制作业,等待下一次启动之前完成。

我创建了一个SSIS包,它按顺序启动了作业,但它使用了sp_start_job,运行时立即启动所有作业,使它们再次一起运行。

一个侧面目的是能够禁用到特定服务器的复制,而不是单独禁用十几个作业或暂时禁用复制以避免70多个人的异议。

现在,如果我禁用合并复制作业,SSIS包仍然会启动并运行它。

我现在尝试为每个复制作业创建一个SSIS包,然后创建一个按顺序调用这些包的SQL Server代理作业。该作业需要8秒钟才能完成,而正在调用的单个程序包(启动复制作业)至少需要一分钟才能完成。换句话说,这也不起作用。

SQL Server代理知道复制作业何时完成!为什么SSIS包或工作步骤不知道?如果控制流不起作用,有什么意义?

插入等待是没用的。根据需要复制,个人工作可能需要1秒到1小时。

1 个答案:

答案 0 :(得分:0)

可能我没有看到真正的问题,但你自然需要同步点,并且有很多方法可以创建它。 例如,您仍然可以同时运行作业,但让第一个作业锁定第二个所需的资源,这将等待资源解锁。或者第二个工作可以循环监听日志表(等待#34;分钟"并且在#34;一小时后自行取消")...