我在SSDT 2012中有一个数据库项目,它包含一个使用包部署模型的SSIS项目。该项目的目标是一次加载大量信息,如果一个软件包完成,通常会花费太多时间。所以我将它分成了15个孩子,每个孩子分别在不同的部分进行,将数据加载到各种sql表中。因此,在这个项目中是一个父包和15个子包。由于正在加载的数据类型,我必须使用脚本任务将其全部插入。每个子包都是相同的,只是在子节点之间划分数据的参数之间存在差异。每个子包都通过文件系统使用外部引用执行。
我遇到的问题是,父包应该立即启动所有子包,而不是所有的子包都启动。这就好像一次可以启动多少包(看起来大约10或11)是有限制的。一旦达到此限制,其余部分就不会启动。但是当一个包完成后,另一个包立即启动。
我是否缺少一个限制包可以同时运行的属性?根据其他人能够同时运行的内容,似乎有些东西我不知道。我读到某处内存可能是一个因素,但是当我查看任务管理器时,我看不到任何超过15%的内存使用情况。
答案 0 :(得分:0)
通过查看父包上的属性NSScanner
可以解决问题。在我的父包中,此属性的默认值为MaxConcurrentExecutables
,这意味着它会根据PC上的核心数加上2来计算并行运行的任务数(在本例中为子包)。 / p>
在我的情况下,我的笔记本电脑上有8个内核,另外还有2个同时运行10个软件包的内核。您可以通过在其位置放置更高的正数来覆盖此值,以允许更多的子项运行。投入20后,所有任务立即开始。
有关此内容的更多信息,请访问:
https://andrewbutenko.wordpress.com/2012/02/15/ssis-package-maxconcurrentexecutables/