チェックサムとチェックサム関数-SQL Server

X

プライバシー&クッキー

このサイトはクッキーを使用しています。 継続することにより、あなたはそれらの使用に同意します。 Cookieの制御方法など、詳細についてはこちらをご覧ください。

わかった!

広告

チェックサムは固定長の計算値です。 これは、データ伝送における偶発的なエラーを検出するために使用されます。

通常、アルゴリズムはチェックサム値を計算するために使用され、各アルゴリズムは特定の目標のために設計されています。

チェックサム関数またはアルゴリズムは、ハッシュ関数、指紋、ランダム化関数、および暗号ハッシュ関数に関連しています

いくつかのチェックサムアルゴリズム

  • パリティバイト
  • モジュラーサム
  • 位置依存チェックサム

チェックサム()関数-SQL Server

このハッシュ関数は、行全体または式または列のリストのチェックサム値を計算するために使用されます。 計算された整数値を返します。

チェックサム引数は、行全体または特定の列または有効なデータ型を持つカンマで区切られた式のチェックサム値を計算するための*です。

無効なデータ型は、text、ntext、image、XML、およびcursorであり、sql_variantでもあります。

実装

0. NULL値のチェックサムを計算します。

pic1

1. 式を使用してチェックサムを計算する

Select checksum(‘SQL’,’Server’,’Rider’)

出力: -1450562993

2. Adventureworksテーブルの特定の列を使用してチェックサムを計算します。

pic13. 行全体のチェックサムの計算

pic2このチェックサム関数は、データウェアハウスで行の変更を検出するために使用できます。 しかし、checksum()は2つの異なる引数に対して同じ値を返すことがあります。 なぜなら、checksum()アルゴリズムはバイト単位で数ビットを計算し、データ全体から4バイト(整数)の値しか得られないからです。 したがって、衝突や重複を取得する可能性は高いです。

実際には、チェックサムはSQL Serverでハッシュインデックスを構築するためのものです。

この問題は別のブログで非常に明確に説明されています。 チェックサムの弱点を参照することができます。

SQL Serverには、CHECKSUM_AGG()、HASHBYTES()、
BINARY_CHECKSUM()などの他のハッシュ関数があります。 これらの機能については、次のブログ記事で説明します。

コメントを残す

メールアドレスが公開されることはありません。