2016-11-09 3 views
0

おはようございます。SqlBulkCopyは効率的な単列挿入のために間違った選択ですか?

私は15秒ごとに1行を実行して挿入するサービスをC#で作成しています。この間隔はユーザー定義可能ですが、現時点では15秒が目標間隔です。

私はこの記事を読んでいます:SqlBulkCopy on a single record?これは、単一の行の一括挿入を実行することよりも通常の挿入を使用することのスループットの利点を明確に説明しています。しかし、それはまた、通常の挿入物が一括挿入物よりもCPU上で重いことを言い(または示唆している)。

私が書いているサービスはサポートサービスであり、インサートは一定の間隔で人工的に1に制限されているため、上記の含意がSqlBulkCopyを通常の挿入物に使用することの正当な理由であるかどうかは疑問です。明らかに、私のサービスはできるだけ軽量にしたい。

+2

バルクコピーを使用して1つのレコードを挿入することは、宇宙船を発射して叔父さんの通りを訪れるようなものです。あなたは数学をする。 –

答えて

2

あなたの記事の答えによれば、SqlBulkCopyは4.4倍遅く、単純なSQLコマンドのCPUを2倍使います。あなたは答えを誤って読んだ(または私がした)、それはSqlBulkCopyは、より意味のある通常の挿入よりもCPU上に重いと述べている。

答えは簡単です:SQLコマンドを使用して100%確実であれば、挿入する必要があるレコードは1つだけです。

マイライブラリC# Bulk Operationsでも、SqlBulkCopyが高すぎるため通常10個の特定の行に達するまでSqlBulkCopyを使用しません。

関連する問題