7

多くのバイナリ チェックサム関数を使用する複雑なクエリがあります。2 つの異なるレコードのテスト データを使用してテストすると、実際には同じチェックサム値が返されました。以下で使用したテストデータを見つけてください

SELECT BINARY_CHECKSUM(16   ,'EP30461105',1) AS BinaryCheckSumEx UNION ALL
SELECT BINARY_CHECKSUM(21   ,'EP30461155',1) AS BinaryCheckSumEx

現在、一意のレコードを確実に取得できる「MD5」アルゴリズムで HASHBYTES 関数を使用しようとしていますが、現在のクエリでは「チェックサム」値を使用して「マージ」ステートメントに結合することが懸念されます新しい記録を探すために。「HashBytes」は Varbinary データ型を返すため、結合条件を「HashByte」フィールドに置き換えると、どれだけのパフォーマンス オーバーヘッドが期待できるかを示します。

SELECT HASHBYTES('MD5', CONCAT(Col1,Col2,Col3,Col4,..))

さらに、複数の列のハッシュを作成する必要があります。その場合、追加の Concat 関数が必要になると、パフォーマンスに追加のオーバーヘッドが発生します。

4

1 に答える 1