ページの先頭行へ戻る
PRIMEFLEX for HA Database 業務開発ガイド(Native SQL編)
FUJITSU Integrated System

3.5.2 インデックスの格納構造の特徴

インデックスの格納構造には、BTREE構造があります。ここでは、インデックスの格納構造について、その特徴とその構造に適したデータ処理を示します。

3.5.2.1 BTREE構造

BTREE構造は、インデックスに対する格納構造です。内部的には、木構造のインデックス部とデータ部からなっています。インデックス部は、インデックスのキーと実表データとの対応情報の組の値からなっており、データを格納するページを管理します。インデックス部に対して、データを格納するページからなる部分を、“データ部”と呼びます。

DSO定義のベース表現としてADDRESSが指定された場合は、実表データとの対応情報として表のレコードの格納アドレスが使用されます。

データ部のあるページにデータが収まらない場合は、PRIMEFLEX for HA Databaseが新しいページを切りだし、そのページと元のページとの間でデータを分配して格納します(これをページスプリットと呼びます)。データ部のページスプリットにともなって、インデックス部のページスプリットが行われる場合があります。

インデックスのキーが一意キーでない場合には、1つのインデックスキーの値に対して複数の実表データとの対応情報の値が存在することがあります。また、その重複度(実表データとの対応情報の数)もインデックスのキーの値に依存し一定ではありません。そのため、BTREE構造では、インデックスのキーと実表データとの対応情報を組にして管理します。このキーの組に対して昇順を保証します。さらに、格納効率を良くするため、インデックスのキーの部分を前方圧縮します。

以下に在庫表を例にとってBTREE構造の概略を示します。この例では、倉庫番号の列の上にインデックスが定義され、また表の格納構造はSEQUENTIAL構造であるとします。

図3.22 BTREE構造の概略

データ処理のパターンに対するBTREE構造の特徴

データの処理の効率に一番影響のある要因は入出力回数です。BTREE構造の場合は以下の特徴があります。

BTREE構造のページ長の指定

BTREE構造では、インデックス部とデータ部に対して、それぞれのページ長を独立に指定できます。データ部のページ長はDSO定義のPAGESIZE1オプションで指定します。インデックス部のページ長はPAGESIZE2オプションで指定します。

データ部のページ長およびインデックス部のページ長には、8(キロバイト)を指定します。

インデックスの付加の際の考慮点

インデックスは、1つの実表に対して複数付加することができます。検索の場合には、インデックスの付加によって処理効率を上げることができます。しかし、以下のような場合には、関連するすべてのインデックスのアップグレード処理が行われるため、全体としての処理効率が低下することがあるので注意が必要です。