SSIS - 并行执行子包

时间:2014-07-16 22:47:58

标签: ssis

SSIS中的执行包任务中的ExecuteOutOfProcess属性有何意义?我需要通过传递不同的参数在for循环中执行子包,并希望启动子包的几个实例并行执行..

更新

在此处找到解决方案(根本不使用执行包任务) http://www.rafael-salas.com/2010/07/ssis-how-to-run-set-of-packages.html

3 个答案:

答案 0 :(得分:1)

如果没有优先约束停止并行运行的包,并且包中的MaxConcurrentExecutables属性为-1(或足够大),则执行包任务将并行运行。我认为以交互方式运行会很明显。

我在猜测' ExecuteOutOfProcess'强制包在新的DTEXEC.EXE进程中运行。这与它是否并行运行无关。

我们目前有一个专门用于并行运行进程的主包,并且没有任何执行包任务都有ExecuteOutOfProcess

以下是更多信息:

http://www.jamesserra.com/archive/2011/11/parallel-execution-in-ssis/

http://consultingblogs.emc.com/jamiethomson/archive/2007/08/27/1414.aspx

答案 1 :(得分:1)

答案 2 :(得分:1)

我有一个非常强大的解决方案,可以并行运行单个SSIS包。请阅读文章:https://www.mssqltips.com/sqlservertip/4329/performance-improvements-to-process-a-large-number-of-files-with-ssis/

此解决方案与我找到的所有其他解决方案不同,原因如下:

  1. 使用单个SSIS包而不是多个副本
  2. 使用C#代码创建包的多个实例
  3. 使用C#代码将不同的参数传递给每个实例
  4. 使用父包中的变量来控制实例数
  5. 这些功能提供了一个更简单的解决方案(1个包维护),可以轻松扩展(调整1个值),同时提供真正的并行处理,性能提升了数量级。看看吧。

    基思