テーブルに多数のレコード(約2〜3百万)を挿入する必要があります。しかし、私たちは、後で参照できるように、主キー、外部キーおよび非ヌル違反の無効なレコードを別のエラー・テーブルに検証し、分離する必要があります。私の研究では、SQLサーバーの一括挿入は挿入にはうまくいくが、悪いデータレコードをフィルタリングする最良の方法を理解することはできない。間にステージングテーブルを持つことは助けになりますか?ステージングテーブルに対していくつかのキューを使用して違反をチェックすることもできますが、実際のテーブルに、別のインサートを挿入するか、またはマージするかのどちらかを使用して良いレコードをロードする必要があります。私はそれが2倍の挿入を行うのに似ているので心配です。データ検証付き一括挿入
大量の挿入を行うために.net sqlbulkcopyを使用する予定であり、明確なエラー報告もありません。
もっと効率的なソリューションを教えていただけますか?
EDIT:このアプローチが唯一の解決策である場合、2番目のインサートにはどのような方法が最適ですか?挿入されていますか...選択かマージですか?彼らはBULK INSERTの効率とスピードにマッチしますか?それとも他に良い選択肢がありますか?
ありがとうございます!
これにはいくつかのアプローチがあります。http://stackoverflow.com/questions/1004525/sqlbulkcopy-error-handling-continue-on-error – TheGameiswar
@TheGameiswarリンクをありがとう。私はそれを通り抜けましたが、実際にはこのシナリオに当てはまると私は思っています。しかし、ソースからステージング・テーブルへの1つのバルク・インサートとステージング・テーブルからターゲットへの1つのバルク・インサートを効率的に行うかどうかはわかりません。最適化のチャンスがあるかどうかを知りたかっただけです。 –
@TheGameiswarは、第2ステップを実行するための最良の方法についての意見収集に関する質問を編集しました。ありがとう! –