2010-07-14 83 views
3

我在使用2种方法 数据库(100,1.000,10.000和100.000)插入记录(与没有主键,没有索引的表)最快的方式

  • 使用用于和使用存储过程

的时间是使用存储的过程由一个

  • 插入一个,当然更好。 我的问题是:1)如果我用一个指数将运行得更快和2)是否有任何其他的方式,使插入

    PS:我使用iBATIS作为ORM如果让任何区别

  • +0

    [将数据插入到具有最佳性能的SQL服务器中]可能的重复(http://stackoverflow.com/questions/2805390/insert-data-into-sql-server-with-best-performance) – Incognito 2010-07-14 07:52:59

    回答

    5

    退房SqlBulkCopy

    它设计用于快速插入批量数据。当使用TableLock选项并将BatchSize设置为大约10,000时,我发现它是最快的,但最好用自己的数据测试不同的场景。

    您可能还会发现以下有用的信息。

    SQLBulkCopy Performance Analysis

    2

    不,我怀疑,如果你使用索引,它实际上会慢。这是因为它必须更新索引以及插入数据。

    如果您有理由确定数据不会有重复的键,请在插入所有行后添加索引。这样,它就构建了一次,而不是被添加到每个插入并重新平衡。

    这是DBMS的一个功能。我知道这是我经常使用的(这不是SQLServer)。