2012-02-13 77 views
1

我必須在sqlserver數據庫中插入超過200k條記錄。哪種方法最適合批量插入?

我的想法是將數據添加到數據表然後做批量插入,但我的TL說:「將數據插入CSV文件格式並進行批量插入」。

哪種方法更快?

+2

使用[SqlBulkCopy](http://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqlbulkcopy.aspx)是最有效的方法。但是你沒有說什麼是你的原始數據源。 – 2012-02-13 13:58:09

+0

爲什麼你認爲編寫一個創建數據表的C#程序,填充它然後插入會更快?我認爲你的TL在正確的軌道上。 – 2012-02-13 15:17:00

回答

3

如果CSV文件已經創建SQL Bulk Insert是迄今爲止性能和開發時間最快的。

如果您在應用程序中創建數據,您很可能會發現BulkCopy是最簡單/最快的解決方案。

無論哪種方式200k記錄不是一個大量的數據,應該是相當快的。

2

一般散裝插入csv文件是高性能插入

BULK 
INSERT Table 
FROM ‘$path\$file.csv’ 
WITH 
(
    FIELDTERMINATOR = ‘;’, 
    ROWTERMINATOR = ‘\n’, 
    KEEPIDENTITY, 
    TABLOCK 
) 

我與添Schmelter答案可能會因數據源的變化一致。