DB2 マルチシステムでの区分化

区分化 とは、ノード・グループ内でノード間にファイルを配布するプロセスのことをいいます。

区分化は、ハッシュ・アルゴリズムを使用して行われ ます。新しいレコードが追加されると、ハッシュ・アルゴリズムが 区分化キー内のデータに適用されます。ハッシュ・アルゴリズムの結果である 0 から 1023 の間の数字は、区分化マップに適用されて、レコードが存在するノードを判別します。

区分化マップは、QUERY 最適化、更新、削除、および結合にも使用されます。区分化マップをカスタマイズして、特定のキー値を特定のノードに使用する ことができます。

たとえば、入出力中、システムはハッシュ・アルゴリズムを 区分化キー・フィールド内の値に適用します。この結果は、ファイル内に保存された区分化マップに適用されて、どのノードがレコードを保存したかを判別します。

次の例は、これらの概念が相互にどのように関連しているかを示しています。

社員番号は区分化キーであり、レコードは社員番号 56,000 のデータベースに 入力されます。56,000 という値はハッシュ・アルゴリズムによって処理され、結果は 733 と いう区画番号になります。区画マップはノード・グループ・オブジェクトの 一部であり、作成時に分散ファイルに格納されます。 これには、区画番号 733 を示すノード番号 1 が含まれます。したがって、このコードは、ノード番号 1 を割り当てられた ノード・グループ内のシステムに物理的に格納されます。区分化キー (PTNKEY パラメーター) は、区分化 (分散) ファイルを 作成したときに、ユーザーによって指定されています。

区分化キー内のフィールドは、ヌル可能にすることができます。ただし、区分化キー内にヌル値を含むレコードは、常に、区画番号 0 にハッシュします。区分化キー内に有効な数のヌル値を持つファイルは、区画番号 0 でデータ・スキューになる可能性があります。これは、ヌル値を持つすべてのレコードが区画番号 0 にハッシュする ためです。

ノード・グループ・オブジェクトと 区分化分散リレーショナル・データベース・ファイルを作成した後 、DSPNODGRP コマンドを使用して、区画番号とノード名の 間の関係を表示することができます。『DB2® マルチシステムでの DSPNODGRP コマンドを使用したノード・グループの表示』のトピックには、区画番号、ノード・グループ、およびシステム名を表示する方法に関する詳細情報があります。

分散ファイルを作成する場合は、区分化キー・フィールドは 物理ファイルの作成 (CRTPF) コマンドの PTNKEY パラメーターか、または SQL CREATE TABLE ステートメントの PARTITIONING KEY 文節に 指定されます。データ・タイプ DATE、TIME、TIMESTAMP、および FLOAT を 持つフィールドは、区分化キーでは使用できません。