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

3.5.1 表の格納構造の特徴

格納構造はDSO定義で指定します。格納構造には、SEQUENTIAL構造およびBTREE構造があります。SEQUENTIAL構造は、表の格納構造です。BTREE構造は、インデックスの格納構造です。

表のデータの格納方式は、SEQUENTIAL構造にインデックスを付ける形態となります。

ここでは、表の格納構造について、その特徴とその構造に適したデータ処理を示します。

3.5.1.1 SEQUENTIAL構造

SEQUENTIAL構造は、データをその挿入順に格納する構造です。

在庫表を例にSEQUENTIAL構造の概略を以下に示します。

図3.21 SEQUENTIAL構造の概略

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

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

なお、インデックスを付加する場合に考慮すべき事項は、“3.5.2.1 BTREE構造”を参照してください。

SEQUENTIAL構造のページ長の指定

SEQUENTIAL構造では、ページ長はDSO定義のPAGESIZEオプションで指定します。

ページ長には32(キロバイト)を指定します。

SEQUENTIAL構造でインデックスの付加が必要な場合

対応する表の一意性制約の列に対しては、インデックスの付加が必要になります。インデックスが付加されていない状態だと、表にアクセスすることはできません。

コミットデータ即時読込み機能を利用する場合

DSO定義のPRECEDENCE(1)を指定することで、表のデータに対して更新と参照が同時に発生した場合に、更新の完了を待たずに即時に最新のコミット済みデータを参照することができます。

PRECEDENCE(1)を指定した場合の特徴と考慮すべき事項は、“3.5.1.2 PRECEDENCE(1)を指定したSEQUENTIAL構造の特徴と注意点”を参照してください。

3.5.1.2 PRECEDENCE(1)を指定したSEQUENTIAL構造の特徴と注意点

PRECEDENCE(1)を指定したSEQUENTIAL構造の場合、“3.5.1.1 SEQUENTIAL構造”に加えて、以下の点に注意してください。

本格納構造ではトランザクションが更新途中にある一時的な期間、表の1行に対応する更新前のデータと更新中のデータを2重に保持します。そのため、SEQUENTIAL構造の表のDSOをPRECEDENCE(1)を指定して定義した場合、参照しようとする行が他のトランザクションによって更新途中の場合でも、その完了を待つことなく、更新が行われる前のコミット済みのデータを参照することができます。

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

本格納構造は、データを2重に保持するために他の格納構造と比較してデータ量が大きくなるという特徴があります。

このため、インデックスを利用したアクセスとなるよう設計してください。

なお、インデックスを付加する場合に考慮すべき事項は、“3.5.2.1 BTREE構造”を参照してください。

ページ長の指定

本格納構造では、データ処理の効率化を図るため、同じページに更新前と更新後のデータを保持します。

最適な業務モデルとアプリケーション

本格納構造は、検索レスポンスを重視したオンラインアプリケーションを実行する際に効果を発揮します。そのため、大量更新をともなうバッチ業務が主となるような場合には他の格納構造の適用も検討してください。

参照

本格納構造をアプリケーションから利用する場合に考慮すべき点については、“Symfoware Server アプリケーション開発ガイド(共通編)”を参照してください。