在数据库中插入多条记录的最快方法

4
我正在使用两种方法向数据库中插入记录(100、1,000、10,000 和 100,000),该表没有主键和索引:
  • 使用循环逐个插入
  • 使用存储过程
当然,使用存储过程的时间更短。我的问题是:1)如果我使用索引,操作会更快吗?2)是否有其他方法可以进行插入?
PS:如果使用ibatis ORM,则可能会有所区别。

可能是使用最佳性能将数据插入SQL服务器的重复问题。 - Incognito
4个回答

5

请查看SqlBulkCopy

它专为快速插入大量数据而设计。我发现在使用TableLock选项并设置批处理大小约为10,000时,它的速度最快,但最好使用您自己的数据测试不同的情况。

您也可能会发现以下内容有用。

SQLBulkCopy性能分析


2
不,我怀疑如果使用索引,实际上速度会变慢。这是因为它必须更新索引并插入数据。
如果您相当确定数据不会有重复的键,请在插入所有行后添加索引。这样,它只建立一次,而不是在每次插入时被添加和重新平衡。
这取决于DBMS的功能。我知道我经常使用的那个(不是SQLServer)也是如此。

1

0

如果您认为这是一个重复的问题,请在评论中留言。 - the_drow

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接