2012-02-13 14 views
1

私はsqlserver DBに200kを超えるレコードを挿入する必要があります。どの方法が一括挿入に最適ですか?

私の考えはデータテーブルにデータを追加して一括挿入を行うことですが、私のTLは「データをCSVファイルフォーマットに挿入して一括挿入します」と言っています。

どのアプローチが高速ですか?

+2

[SqlBulkCopy](http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlbulkcopy.aspx)を使用する方法が最も効率的です。しかし、あなたは元のデータソースが何であるかは述べていません。 –

+0

なぜデータテーブルを作成し、データテーブルを作成してから挿入するC#プログラムを記述する方が速いと思いますか?私はあなたのTLが正しい道にあると思う。 –

答えて

3

CSVファイルがすでに作成されている場合は、SQL Bulk Insertは、パフォーマンスと開発の両方で最も速いです。

アプリケーションでデータを作成する場合は、BulkCopyが最も簡単で最速のソリューションである可能性が最も高いでしょう。

いずれの方法でも200kレコードは膨大なデータ量ではなく、かなり高速でなければなりません。

2

通常バルク挿入csvファイルは、私がティムSchmelterデータソースの異なる場合があり答えに同意する高性能挿入

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

です。

関連する問題