2013-09-29 46 views
-1

我们有超过1000个平面文件,每个文件大约有100万条记录。我们需要将所有这些数据插入到数据库的单个表中,并且表不能分区。我们试图使用SSIS实现并行处理,通过它我们想要使用SSIS将数据从平面文件中同时插入到一个表中,从而运行多个批量插入过程。从平面文件插入的顺序也不重要。 我们有一个带有MULTIPLEFLATFILE连接管理器的SSIS包,其中包含一个flatfile任务和一个OLE DB目的地任务,并检查了“快速加载”和表锁定选项。通过这个,我们可以看到只有一个SPID可以将数据插入表中。我们希望至少有5个SPID /进程同时插入/并行插入表中。请在这方面协助我。SSIS - 将多个文本文件中的数据加载到单个表中,并行处理

感谢

+0

现在需要多长时间,您需要多长时间?我问,因为在这种情况下,复杂性/努力/成本与速度方面的回报之间存在非常实际的折衷。 – RBarryYoung

+0

目前它需要5-6小时来完成加载,但问题是只有一个批量插入SPID,我看到在DB上工作。我想设置包,以便我可以并发插入到数据库中。 Addl的服务器甚至没有接近其峰值,并有16个处理器和64GB内存。使用并行/并行插入,我们想将插入时间减少到几个小时 – Amam

回答

0

为了获得最大性能的刀片,你想使用的OLE DB目标和那里,指定快速加载选项(在下拉),然后检查表锁。这将使数据以最快的速度进入表格。但是,您现在将被迫进入连续加载。

为了让并行加载运行,您需要让每个线程加载到自己的表中,然后在最后将所有数据合并到最终目标中。除了简单的元数据操作外,基本上与合并分区背后的逻辑相同,您将移动数据两次。

+0

有没有什么办法,我们可以实现并行加载而不需要单独的线程加载到像上面提到的合并选项那样的单独表中 – Amam

+0

我认为这是最好的选择。但是,如果表是没有索引的堆,则可能能够完成并行批量加载。在这种情况下,SQL Server不关心行到达的顺序。如果您有任何索引,SQL Server将需要对行到达的订单进行更多控制,因为即使数据按索引的顺序到达,它也必须在数据进入时更新索引。 –

相关问题