質問: 私は「C#で巨大なデータをDBに挿入するための控えめな方法」についていくつかの調査を行いましたが、多くの人がSqlBulkCopyを使用して私に示唆しました。私はそれを試した後、それは本当に私を驚かせた。間違いなく、SqlBulkCopyは非常に高速です。 SqlBulkCopyはデータ(特に巨大なデータ)を挿入するのに最適な方法です。しかし、なぜ私たちはいつもそれを使用しません。 SqlBulkCopyを使用する場合の欠点はありますか?
回答: 私が考えることができる2つの理由: 1. 私の知る限り、Microsoft SQL Serverでのみ利用可能です 2. 多くの通常のワークロードでは、一括`insert`は行いませんが、時々の`insert`と`select`および`update`混在させ`select` 。 Microsoft自身は、 `SqlBulkCopy` MSDNページで、通常の`insert`がより効率的であると`SqlBulkCopy`ます 。 `SqlBulkCopy`を通常の挿入と同等にする場合は、少なくとも`SqlBulkCopyOptions.CheckConstraints`パラメーターを渡す必要があることに`SqlBulkCopyOptions.CheckConstraints`ください。