SQLBulkCopy或批量插入

bulkinsert c# performance sql sqlbulkcopy

我有大约6500个文件,总和大约17 GB的数据,这是我第一次移动我称之为大量数据的东西。数据位于网络驱动器上,但各个文件相对较小(最大7 MB)。

我正在用C#编写程序,如果我使用BULK INSERT而不是SQLBulkCopy,我想知道是否会注意到性能上的显着差异。服务器上的表也有一个额外的列,所以如果我使用BULK INSERT,我将不得不使用格式文件,然后为每一行运行UPDATE。

我是新来的论坛,所以如果有更好的方式来问这个问题,请随意提及。

一般承认的答案

通过测试,BULK INSERT 快得多。使用SQLBulkCopy一小时后,我可能只有四分之一通过我的数据,我已经完成了替代方法的编写(和午餐)。当我写完这篇文章(约3分钟)时,BULK INSERT大约有三分之一的时间。

对于那些将此作为参考的人来说,值得一提的是,如果没有主键,上传速度会更快。

应该注意的是,其中一个主要原因可能是服务器是一台功能更强大的计算机,而且这不是对算法效率的分析,但是我仍然建议使用BULK INSERT作为平均值。服务器可能比普通台式计算机快得多。



许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因