![](/img/trans.png)
[英]Increase performance of SSIS Package dumping data from Excel to SQL Server table
[英]How to increase the performance for inserting data to an table in SSIS
我有一个包含 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 package。
任何关于我如何提高性能的建议都会很棒。
谢谢王子
以下应该有所帮助;
- 在处理之前将文件移近目标(即在同一个盒子上)以避免网络延迟
-从 SQL 服务器而非 Visual Studio 中部署并运行 package
-使用 SQL 服务器目标,而不是 OLE DB 作为更快加载的目标
-关闭目标组件的约束检查
-检查目标表没有在加载时发生昂贵的触发器
- 如果不需要执行任何转换,请考虑使用批量插入任务
3 lacs 只有 300000,字段/行看起来也不是特别宽。 这是一个很小的数字,不会引起任何问题。
试着找出瓶颈在哪里——源头还是目的地? 如果源是瓶颈,你可以拆分文件并将它们暂存到单独但相同的暂存表中,如 stg_1、stg_2 等,然后并行加载它们。
如果目的地是瓶颈,您可以使用平衡数据分发器,并将它们放入不同的暂存表中。
同样,所有这些对于仅 30 万行来说似乎都有些矫枉过正。
确保临时表上没有任何索引。 我们很乐意听取您的意见,您尝试了哪些方法、哪些方法奏效了,以及您是如何解决的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.