在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
你的想法是什么?
我只能为自己和我的经历说话.我会选择SSIS,因为这是你可能不必要地重新发明轮子的情况之一.这是SSIS已经解决的重复性任务.
我每天管理大约57个工作(DTS和SSIS的组合).其中四个经常处理5到1亿条记录的输出.我管理的数据库大约有20亿行.我利用脚本任务将日期追加到毫秒,这样我就可以每天多次运行作业.现在大约22个月了.太棒了!
SSIS工作也可以安排.所以你可以设置并忘记它.我每天都会监控所有内容,但文件处理部分从未发生过故障.
我唯一需要使用自定义C#程序的时候,我需要将非常大的文件拆分成更小的块.对于那种东西,SSIS很慢.使用脚本任务,一个gig文本文件需要大约一个小时才能拆分.C#自定义程序在12分钟内处理完毕.
最后,只需使用您觉得舒适的使用方法.