1
SSISのソースからターゲットへテーブルをロードする必要があります。表には約150万行が含まれています。ハッシュバイトを使用してSSISのソーステーブルと一致しないレコードを削除する方法
これまでのところ、ID列で一致しなかった宛先レコードに新しいレコードを挿入できましたが、一致した行は更新しましたが、一致しなかった行はHASHBYTES
という値に更新されました。
これは私がやったことです:ID列に基づいて行をリダイレクトするために参照変換を使用してデータベース
- 。
- IDがhashbutesが 先テーブルと一致するかどうかを確認するために別の参照変換を用いてtblEmployeesDestination
- に行を挿入し、次に一致するいけない場合、「RefreshDate」欄
- を取得するDerivedColumnを使用。
- hashbytesが一致しない場合、OLEDBコマンドを使用して、 の行tblEmployeesDestination内の行を更新します。
私の質問は、マッチソーステーブルをdidntの宛先表のこれらの行を削除するための最良の方法何でしょう、ですか?
これにはどのような変換が必要ですか?
#Ferdipux 私は現在、t-SQL MERGEコマンドを使用しています。ソーステーブルと宛先テーブルは別々のサーバーにあります。 UPSERTとDELETEの場合、約15分(長いと思うか分かりません)分がかかります。SSISはそのようなもののために設計されているため、パフォーマンスを向上させるために使用すると思います – Oleg
@Oleg、私はあなたのポイントを見ています。 SQLからSSISサーバーにルックアップをオフロードできますが、削除はSQLに依存しています。 MERGEが方法でない場合は、2番目の推奨に従うことをお勧めします。専用の表で削除するすべての行を保存してから、削除コマンド実行計画を確認してください。 – Ferdipux