私たちは、変更ETLプロセスで変更検出を実装しようとしています。だから私たちは前に700Kレコードと約140カラム(私達は変更の列を決定するためにまだある)、約半分の時間のためのクエリの実行とテーブルについてSql - バルク暗号化ハッシュ生成
SET a.[HASH] = (SELECT
master.dbo.fn_varbintohexsubstring(0, HashBytes('md5', (SELECT TOP 1 * FROM customer_demographics_staging b WHERE b.customer_no = a.customer_no FOR XML RAW)), 1, 0))
FROM customer_demographics_staging a
を使用して暗号化ハッシュを取得することを決めた
私たちはそれを取り消した。
私たちはこれを改善することができるクエリの数を減らすことは別として、とにかくありますか?
これは本当にうまく見えます。私はそれを行って、あなたに知らせるでしょう。 CHECKSUMの使用に関しては、値が変更されたときにそれが変更されない可能性があるため、変更検出には理想的ではありません。それが私たちの最初の選択でした。 – frostymarvelous
私はそれがちょうどCYAだと思っています*任意の*ハッシュアルゴリズムが衝突を持っている限り(MD5が含まれています)。 'rowversion'カラムをテーブルに追加し、計算を完全にスキップすることもできます。 –
ssisを使用してOracleデータベースからデータを抽出するので、Rowversionは機能しません。 – frostymarvelous