3

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

4

3 回答 3

1

最有效的是 SQL Bulk Insert

要进一步提高性能,您可以使用SqlBulkCopy到 SQL Server in Parallel

于 2012-12-13T10:49:17.003 回答
0

这可能会根据特定的工作负载而有所不同。

我们只能在这里告诉您哪些选项可供您使用 - 由您来衡量每个选项在您的特定情况下的效率。

选项:

  • SQLBulkCopy
  • INSERT单行语句
  • INSERT具有多行的语句(尝试不同的行数)
  • 存储过程(上面有变化)
于 2012-12-13T10:02:11.370 回答
0

2 快得多,因为任何涉及每行操作(RBAR)的东西本质上都很慢。我对表值参数进行了大量测试,发现它们接近批量插入的性能,批量大小高达 1,000,000 行。但是,这纯粹是轶事,您的里程可能会有所不同。

另外,我建议不要使用 aDataTable并编写更直接地流式传输行的东西。我在这里写了博客。

于 2012-12-13T10:02:15.560 回答