デフォルトの最大インデックス・ハッシュ・サイズをバイト単位で設定します。
{ ulcreate | ulinit | ulload } -o max_hash_size=value;...
0 ~ 32 バイト
4 バイト
ハッシュは、インデックス・エントリのオプション部分で、インデックスのページに格納されます。ハッシュによって、インデックス・カラムの実際のローの値が、インデックスの順序を保持したまま、それに相当する数値 (キー) に変換されます。キーのサイズと、実際の値がハッシュされる長さは、設定するハッシュのサイズで決まります。
Ultra Light では、ロー ID によって、テーブル内の実際のデータのローを見つけることができます。ロー ID は、常にインデックス・エントリの一部です。ハッシュ・サイズを 0 に設定する (インデックスのハッシュを無効にする) と、インデックス・エントリにはこのロー ID だけが含まれます。ハッシュ・サイズを 0 以外に設定すると、そのローの変換されたデータすべてまたはその一部を含むハッシュ・キーがロー ID とともにインデックスのページに格納されます。Ultra Light で必ずしもデータを検索、ロード、アンパックしてから実際のローの値を比較する必要がないため、これらのインデックス・カラムに対するクエリのパフォーマンスを向上できます。
データベースのデフォルトのハッシュ・サイズを決定するには、クエリの効率とデータベースのサイズのトレードオフを評価する必要があります。最大ハッシュ値が大きいほど、データベースのサイズが大きくなります。
Ultra Light では、このパラメータで指定されている最大値を上限として、カラムのデータ型に必要なバイト数のみが使用されます。デフォルトのハッシュ・サイズは、インデックスを作成するときにサイズを設定しなかった場合にだけ使用されます。デフォルトのハッシュ・サイズを 0 に設定すると、Ultra Light では、ローの値はハッシュされません。
既存のインデックスのハッシュ・サイズは変更できません。Sybase Central で Ultra Light のインデックス作成ウィザードを使用して、または CREATE INDEX 文か CREATE TABLE 文で WITH MAX SIZE 句を使用して新しいインデックスを作成するときにデフォルト値を変更できます。
カラムを DOUBLE、FLOAT、または REAL として宣言した場合は、ハッシュは使用されません。ハッシュ・サイズは常に無視されます。
Sybase Central では、データベースを作成するウィザードで最大ハッシュ・サイズを設定できます。[新しいデータベースの記憶領域設定] ページで [インデックスの最大ハッシュ・サイズ] オプションを選択します。
クライアント・アプリケーションから、データベース・マネージャ・クラスに対するデータベース作成メソッドの作成パラメータの 1 つとしてこのプロパティを設定します。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |