2010-07-14 81 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)。