2016-10-27 15 views
1

サーバAからサーバBまでの非常に大きなテーブルでは、「存在しない場合は挿入/削除」を実行する必要があります。ルックアップコンポーネントは、行が宛先に存在するかどうかを確認するために、データベーステーブル。SSISは存在しない場合、多数の行を挿入しますか?

良いオプションはありますか?


のテーブルすべてがPKを持っていますが、それらは個別に数百GBのサイズを有することができます。宛先テーブルは、3%の行の下でのみ欠落する可能性があります。だから、コンポーネントをマージするのは良い選択肢ではないでしょうか?

+0

'insert where someColumn in anotherTable from otherTable)'や 'MERGE()'や他のバリデーションメソッドを使用していても、レコードが存在するかどうかをチェックしたいのですが、関係なく、どちらか一方の方法でやらなくてはならないだろうか? – scsimon

+0

作業しているデータの例を挙げることができますか? – DenStudent

+0

主キーがある場合は、マージ結合(完全結合)を使用して、表2のPKが空の場合に基づいて条件付き分割を実行できます。 – DenStudent

答えて

0

マージSSISコンポーネントを使用できます。私は個人的には、すべてのデータをステージングテーブルにロードし、後でストアドプロシージャでMerge T-SQLステートメントを実行することで、より優れたパフォーマンスが得られました。

+0

詳細について質問を更新しました。マージコンポーネントもステージングテーブルも良い選択肢ではないようですね。 – ca9163d9

+0

t-sql mergeコマンドは非常にうまく機能します。私はあなたが見つけると思われる試合の数に関係なく、他のプロセスも同様に実行されるとは思わない。 –

+0

大きなリンクサーバーテーブルでT-SQLマージがうまく機能しますか? – ca9163d9

関連する問題