SSIS中的流量控制有多强制要求?

时间:2015-11-05 19:51:58

标签: ssis

我正在写一个SSIS包。在foreach循环中是一堆任务。它有一个必须首先执行的任务,但其余任务可以按任何顺序执行。

假设我有“task1”,它必须首先在foreach循环中执行,然后其他所有内容都可以执行。

假设括号()代表容器而且 - >代表优先约束。

这是一个有效的控制流,会导致整个包完成,同时首先完成task1吗?:

foreach(task1 -> SequenceContainer( task2  task3  task4 ))

或者我必须指定

foreach (     task2 <- task1 -> task3 
                         |
                         v
                       task4              )

另外,如果这个DOES有效,并且我有一个foreach继续下一次失败的迭代,它会在模块失败时立即跳到下一次迭代,还是会在下一次迭代之前完成所有操作迭代?

2 个答案:

答案 0 :(得分:2)

根据我的经验,只要任务不依赖于之前的任务完成,SSIS就可以正常工作而无需流量控制。它允许系统同时工作,这可以更快。

要记住的问题是系统 同时工作。如果您的任务触及相同的表,则最终可能会出现死锁,事务等待或意外结果。

答案 1 :(得分:1)

序列容器在其所有子任务报告完成之前不会报告完成。如果您的子任务是真正独立的,那么同时运行它们是一个非常好的想法。