我是SSIS的新手,我遇到了这个问题:
我有超过100,000个xml文件,每个文件大约16kb。它们有大约200列和一个主键。其中一些仅用于更新。 我用数据填充数据库,但每个文件加载/更新大约需要1.5秒。我正在使用VS 2015和MS SQL。 我只想在工作时间内创建数据库,现在需要大约44个小时,这看起来很荒谬。 (之后每天只会有大约10个xml文件进行更新。)
我的SSIS ControlFlow看起来像:
我不知道如何更好地表现。
我尝试过的事情: 设置Ole DB =每批次5000行并使用快速加载
即使我只插入xml(因为我没有更新而以错误结束),它需要很多时间(每个文件大约1秒)。
任何帮助都将不胜感激。
答案 0 :(得分:2)
我刚刚做了类似的事情,并且发现了与管理费用相同的问题。我以为我会分享我唯一的工作 - 并行处理。
首先确定服务器可用的核心数量。经验法则是每个核心可以有一个进程。
然后,您可以为您的计算机的每个核心创建一个收件箱文件夹(假设您有四个核心):
然后进入您的SSIS,在控制流程中有foreach循环,并将此过程复制四次,但不要连接它们(这样它们可以单独运行)。
最后进入每个foreach循环并编辑每个循环,以便从不同的收件箱中选择。
您需要明显地将文件剪切并粘贴到每个收件箱中,但它将运行四个并行执行相同操作的数据流。即你应该在加载一个文件的同时加载四个文件。