2012-12-13 37 views
3

当我想要将大量数据插入数据库时​​,哪种方式更有效? 1.插入数据逐行通过调用插入语句 2.创建我的数据库用户定义的表型,并写一个存储过程中插入一个DataTable到数据库中。 为什么?将大量数据插入数据库时​​的效率

+2

[SQLBulkCopy](http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlbulkcopy.aspx)在这种情况下可能是最好的方法 – Habib

回答

0

这可能会有所不同根据具体的工作量。

我们只能告诉你这里有什么选择你 - 这是到你来衡量每个选项效率如何在您的具体情况。

选项:

  • SQLBulkCopy
  • INSERT语句与单列
  • INSERT语句具有多个行(实验具有不同数量的行)
  • 存储过程(具有变体,以上)
0

2是非常快很多,becau任何涉及每行操作的东西(RBAR)本身就很慢。我使用表值参数进行了大量测试,发现它们与批量大小高达1,000,000行的批量插入性能接近。然而,这纯粹是轶事,你的里程可能会有所不同。

另外,我建议不要使用DataTable和写的东西更直接地流行。我在博客上写了here

+0

感谢您的解释。 –