使用xml在SSIS上表现缓慢/不良

时间:2015-12-17 10:35:15

标签: xml ssis

我是SSIS的新手,我遇到了这个问题:

我有超过100,000个xml文件,每个文件大约16kb。它们有大约200列和一个主键。其中一些仅用于更新。 我用数据填充数据库,但每个文件加载/更新大约需要1.5秒。我正在使用VS 2015和MS SQL。 我只想在工作时间内创建数据库,现在需要大约44个小时,这看起来很荒谬。 (之后每天只会有大约10个xml文件进行更新。)

我的SSIS ControlFlow看起来像:

enter image description here

我的SSIS DataFlow看起来像是:enter image description here

我不知道如何更好地表现。

我尝试过的事情: 设置Ole DB =每批次5000行并使用快速加载

即使我只插入xml(因为我没有更新而以错误结束),它需要很多时间(每个文件大约1秒)。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:2)

我刚刚做了类似的事情,并且发现了与管理费用相同的问题。我以为我会分享我唯一的工作 - 并行处理。

首先确定服务器可用的核心数量。经验法则是每个核心可以有一个进程。

然后,您可以为您的计算机的每个核心创建一个收件箱文件夹(假设您有四个核心):

  • inbox 1
  • inbox 2
  • inbox 3
  • inbox 4

然后进入您的SSIS,在控制流程中有foreach循环,并将此过程复制四次,但不要连接它们(这样它们可以单独运行)。

最后进入每个foreach循环并编辑每个循环,以便从不同的收件箱中选择。

您需要明显地将文件剪切并粘贴到每个收件箱中,但它将运行四个并行执行相同操作的数据流。即你应该在加载一个文件的同时加载四个文件。