我在使用2種方法 數據庫(100,1.000,10.000和100.000)插入記錄(與沒有主鍵,沒有索引的表)最快的方式
- 使用用於和使用存儲過程
的時間是使用存儲的過程由一個
PS:我使用iBATIS作爲ORM如果讓任何區別
我在使用2種方法 數據庫(100,1.000,10.000和100.000)插入記錄(與沒有主鍵,沒有索引的表)最快的方式
的時間是使用存儲的過程由一個
PS:我使用iBATIS作爲ORM如果讓任何區別
退房SqlBulkCopy。
它設計用於快速插入批量數據。當使用TableLock選項並將BatchSize設置爲大約10,000時,我發現它是最快的,但最好用自己的數據測試不同的場景。
您可能還會發現以下有用的信息。
不,我懷疑,如果你使用索引,它實際上會慢。這是因爲它必須更新索引以及插入數據。
如果您有理由確定數據不會有重複的鍵,請在插入所有行後添加索引。這樣,它就構建了一次,而不是被添加到每個插入並重新平衡。
這是DBMS的一個功能。我知道這是我經常使用的(這不是SQLServer)。
我知道這有些偏離主題,但是您不使用SQL Server 2008是一種恥辱,因爲隨着MERGE語句和用戶定義的表類型的出現,在這方面出現了巨大的改進允許您將數據的「表」傳遞給存儲過程或語句,以便您可以一次插入/更新多條記錄)。
對於一些詳細信息,看看http://www.sql-server-helper.com/sql-server-2008/merge-statement-with-table-valued-parameters.aspx
請將此項留在如果你認爲這是一個重複的評論。 – 2010-07-14 08:27:54
[將數據插入到具有最佳性能的SQL服務器中]可能的重複(http://stackoverflow.com/questions/2805390/insert-data-into-sql-server-with-best-performance) – Incognito 2010-07-14 07:52:59