繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM