0

我有一个包含7 列的30 万(300,000)条记录的文本文件。我将数据插入到临时表中,然后执行业务逻辑以将数据从那里插入到多个表中。

该文件如下所示:

01|000001111|27/04/2011|12/01/2012|ISDF|AB|1      
02|000002222|09/01/2010|29/01/2010|CfGH|CV|1      
03|000003333|19/07/2005|09/07/2007|TBRF|CC|1 

暂存表称为Stagetable.

我正在使用平面文件源和 OLEDB 目标,它需要 7 个多小时才能将数据插入临时表。我需要提高性能。

我是第一次使用 SSIS 包。

关于如何提高性能的任何建议都会很棒。

谢谢王子

4

2 回答 2

0

以下内容应该有所帮助;

- 在处理之前将您的文件靠近您的目标(即在同一个盒子上)以避免网络延迟

- 从 SQL Server 而非 Visual Studio 中部署和运行您的包

- 使用 SQL Server 目标,而不是 OLE DB 作为目标以加快加载速度

-关闭目标组件的约束检查

-检查目标表在加载时没有发生昂贵的触发器

- 如果您不需要执行任何转换,请考虑使用批量插入任务

于 2012-04-12T12:07:52.500 回答
0

3 lacs 只有 300000,而且每行的字段看起来也不是特别宽。这是一个很小的数字,不会引起任何问题。

试着找出瓶颈在哪里——在源头还是目的地?如果 source 是瓶颈,您可以拆分文件并将它们暂存到单独但相同的暂存表中,例如 stg_1、stg_2 等,然后并行加载它们。

如果目标是瓶颈,您可以使用平衡数据分配器,并将它们放入不同的临时表中。

同样,对于 300K 行来说,所有这些似乎都是多余的。

确保暂存表上没有任何索引。我们很乐意听取您的意见,您尝试了哪些方法,哪些方法有效,以及您是如何解决的。

于 2013-03-01T19:02:24.533 回答