1

私は作成するつもりです:

  • ID と一意のテキスト値を格納するためのテーブル (サイズが大きくなることが予想されます)
  • 入力パラメーターとしてテキスト値を持つストアド プロシージャ (値が上記のテーブルに存在するかどうかを確認し、存在する場合は対応する ID を返し、存在しない場合は新しいレコードを挿入し、新しい ID も返します)

テキストのハッシュ値を使用してテキスト値の検索を最適化し、それにインデックスを作成したいと考えています。したがって、検索中は、クラスター化されていないインデックスが使用されることを期待しています (クラスター化されたインデックスではありません)。

HASHBYTESを使用することにしましたが、ハッシュ値をまたはSHA2_256として保存している場合、違いや利点があるのではないかと思っています。BINARY(32)NVARCHAR(16)

4

1 に答える 1

3

バイナリ データはテキストではないため、ハッシュ値を char として合理的に格納することはできません。さまざまなテキスト処理および比較関数がこれらの文字を解釈します。たとえば、末尾の空白が無視されることがあり、誤った結果につながることがあります。

32 の完全にランダムな非構造化バイトを格納するためbinary(32)、最も自然な形式であり、最も高速な形式です。

于 2015-03-30T09:03:50.870 に答える