当前位置:  开发笔记 > 编程语言 > 正文

我应该使用SSIS或多线程C#应用程序将平面文件加载到数据库中吗?

如何解决《我应该使用SSIS或多线程C#应用程序将平面文件加载到数据库中吗?》经验,为你挑选了1个好方法。

在SQL Server Integration Services(SSIS)中,可以设置与平面文件的连接,该文件可以容纳数百万条记录并将数据推送到SQL DB.此外,可以通过引用和使用Microsoft.SqlServer.Dts.Runtime命名空间从C#应用程序调用此过程.

最好使用SSIS运行具有数百万条记录的平面文件,还是集体"你"更喜欢具有多个工作线程的ac#app(一个用于读取并将行添加到变量,一个用于从该变量写入到DB) ,以及管理这些线程的"母亲"课程?(开发盒有两个cpu)

我已经看到这个数据(sql团队博客)说明对于一个拥有一百万行的平面文件,SSIS是最快的:

Process                Duration (ms)
--------------------   -------------
SSIS - FastParse ON         7322 ms 
SSIS - FastParse OFF        8387 ms 
Bulk Insert                10534 ms 
OpenRowset                 10687 ms 
BCP                        14922 ms

你的想法是什么?



1> Hector Sosa ..:

我只能为自己和我的经历说话.我会选择SSIS,因为这是你可能不必要地重新发明轮子的情况之一.这是SSIS已经解决的重复性任务.

我每天管理大约57个工作(DTS和SSIS的组合).其中四个经常处理5到1亿条记录的输出.我管理的数据库大约有20亿行.我利用脚本任务将日期追加到毫秒,这样我就可以每天多次运行作业.现在大约22个月了.太棒了!

SSIS工作也可以安排.所以你可以设置并忘记它.我每天都会监控所有内容,但文件处理部分从未发生过故障.

我唯一需要使用自定义C#程序的时候,我需要将非常大的文件拆分成更小的块.对于那种东西,SSIS很慢.使用脚本任务,一个gig文本文件需要大约一个小时才能拆分.C#自定义程序在12分钟内处理完毕.

最后,只需使用您觉得舒适的使用方法.

推荐阅读
mobiledu2402851377
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有