ファイルに100万行のデータがありますが、すべてのレコードをSQL Serverに挿入します。挿入中に、サーバー上の既存のデータと比較していますが、比較が満足すれば、サーバー上の既存のレコードを更新するか、ファイルからレコードを挿入します。大きなデータセット用のSQL Server一括挿入
私は現在、この作業を完了するのに3時間以上かかるC#からループしています。誰もがパフォーマンスを改善するためのアイデアを提案できますか?
ありがとう、 Xavier。
ファイルに100万行のデータがありますが、すべてのレコードをSQL Serverに挿入します。挿入中に、サーバー上の既存のデータと比較していますが、比較が満足すれば、サーバー上の既存のレコードを更新するか、ファイルからレコードを挿入します。大きなデータセット用のSQL Server一括挿入
私は現在、この作業を完了するのに3時間以上かかるC#からループしています。誰もがパフォーマンスを改善するためのアイデアを提案できますか?
ありがとう、 Xavier。
チェックフルまたは単純復旧モードで使用しているデータベースの場合:
SELECT recovery_model_desc FROM sys.databases WHERE name = 'MyDataBase';
SIMPLE
リカバリモードである場合。 Full
モードの場合は、Simple
モデルの別のデータベースにステージングテーブルを作成することをお勧めします。 (すでに示唆したように、例えばBCPのための)ありがとう – xavier
BCP ..................... –
あなたの返事をありがとう。私は一括コピープログラムで既存のデータとの比較を行うことができますか?私はこれを初めて使っています – xavier
中間テーブル(ヒープ)にデータをロードし、インデックスを作成し、比較し、最終的にターゲットテーブルを更新する必要があります。 BCPまたはその他のバルクローディング方式では、通常10〜20秒かかります。最大数分です。 – Anton