【问题标题】:SSIS Child Packages not starting at the same timeSSIS子包没有同时启动
【发布时间】:2016-06-27 09:07:51
【问题描述】:

我在 SSDT 2012 中有一个数据库项目,其中包含一个使用包部署模型的 SSIS 项目。该项目的目标是一次加载大量信息,如果一个包这样做通常会花费太多时间。所以我把它分成了 15 个孩子,每个孩子各自做自己的事情,将数据加载到各种 sql 表中。所以,这个项目里面有一个父包和15个子包。由于正在加载的数据类型,我必须使用脚本任务将其全部插入。每个子包都是相同的,只是在子包之间划分数据的参数不同。每个子包都通过文件系统使用外部引用执行。

我遇到的问题是,虽然父包应该同时启动所有子包,但并非所有子包都在启动。好像一次可以启动多少个包是有限制的(看起来大约 10 或 11 个)。一旦达到这个限制,其余的就不会启动。但是当一个包完成时,另一个包会立即启动。

我是否缺少一个属性来限制程序包如何同时运行?根据其他人能够同时运行的内容,我似乎缺少了一些东西。我在某处读到内存可能是一个因素,但是当我查看任务管理器时,我看不到任何超过 15% 的内存使用。

【问题讨论】:

    标签: tsql visual-studio-2012 sql-server-2012 sql-server-data-tools ssis-2012


    【解决方案1】:

    通过查看父包上的属性MaxConcurrentExecutables 解决了问题。在我的父包中,此属性的默认值为-1,这意味着它会根据您 PC 上的内核数加 2 计算并行运行的任务数(在本例中为子包)。

    在我的情况下,我的笔记本电脑上有 8 个内核,加上数字 2,这让我可以同时运行 10 个包。您可以通过在其位置放置更大的正数来覆盖此值,以允许更多的孩子运行。放入20后,所有任务立即开始。

    更多信息可以在这里找到:

    https://andrewbutenko.wordpress.com/2012/02/15/ssis-package-maxconcurrentexecutables/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-16
      • 1970-01-01
      • 2019-12-25
      相关资源
      最近更新 更多