如何提高在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中向表中插入数据的性能的主要内容,如果未能解决你的问题,请参考以下文章