如何提高在SSIS中向表中插入数据的性能

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何提高在SSIS中向表中插入数据的性能相关的知识,希望对你有一定的参考价值。

我有一个包含3列Lakh(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包。

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

谢谢王子

答案

以下应该有所帮助;

- 在处理之前将文件移动到目标附近(即在同一个盒子上),以避免网络延迟

- 从SQL Server中而不是Visual Studio中部署并运行包

- 使用SQL Server目标,而不是OLE DB作为目标,以便更快地加载

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

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

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

另一答案

3 lacs只有300000,字段/行看起来也不是特别宽。这是引起任何问题的非常小的数字。

试着找出瓶颈在哪里 - 在源头或目的地?如果source是瓶颈,您可以拆分文件并将它们分级为单独但相同的登台表,例如stg_1,stg_2等,然后并行加载它们。

如果destination是瓶颈,您可以使用Balanced数据分发器,并将它们放入不同的临时表中。

同样,所有这些似乎只是300K行的过度杀伤力。

确保登台表上没有任何索引。我们很乐意听取您的所有尝试,有效的方法和解决方法。

以上是关于如何提高在SSIS中向表中插入数据的性能的主要内容,如果未能解决你的问题,请参考以下文章

如何在 SQLite 中向表中添加变量?

T-SQL中向表中插入一条数据,其中类型为Decimal的列对应的插入值为‘2400’可就是不行还报“......

perl dbi mysql 向表中插入数据速度很慢

如何在 React Hooks 中向表中添加行而不重复?

如何向一个oracle表中快速插入很多条数据

如何在SQL中向表中添加“X”行?