【问题标题】:SQLBulkCopy or Bulk InsertSQLBulkCopy 或批量插入
【发布时间】:2011-06-23 13:53:42
【问题描述】:

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

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

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

【问题讨论】:

    标签: c# sql performance bulkinsert sqlbulkcopy


    【解决方案1】:

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

    对于将此作为参考的任何人,还值得一提的是,没有主键的上传速度更快。

    应该注意,造成这种情况的主要原因之一可能是服务器是一台功能更强大的计算机,并且这不是对算法效率的分析,但是我仍然建议使用 BULK INSERT,因为一般的服务器可能比一般的台式电脑快得多。

    【讨论】:

    • 所以这并没有说明两种方法的内在差异。它也缺乏关于这两种方法的实现细节的信息。总而言之,IMO 不太有用。
    • 实验是科学的基础。利用我现有的资源,包括时间限制,我在一个公共论坛上分享了我的结果。我认为这个答案为明确描述的场景提供了具体结果的数据,类似用例的人可能会发现它很有用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-15
    • 2013-06-27
    • 1970-01-01
    • 2011-09-11
    • 2012-08-07
    • 2012-03-19
    • 1970-01-01
    相关资源
    最近更新 更多