ページの先頭行へ戻る
Symfoware Server V10.0.0/V10.0.1 RDB運用ガイド(データベース定義編)

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

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

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

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

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

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

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

ページ長の指定

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

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

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

参照

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

PRECEDENCE(1)を指定した表に対してインデックスを付加する際の考慮点

DSO定義にPRECEDENCE(1)を指定した表に対してインデックスを付加する場合、インデックスキーに対する特定の更新パターンにおいて、インデックスの縮退が行われない場合があります。

そのため、インデックスの容量監視を行い必要に応じて再編成を行ってください。

または、BTREE構造のデータ部の見積り式において、表のレコード数に更新または削除するレコードの延べ数を含めて見積りを行ってください。

特定の更新パターンとは、現状格納されているインデックスキーの範囲よりも大きなインデックスキーに更新する処理を繰り返し実行するような場合です。

BTREE構造のデータ部の見積り式については、“4.4 データベーススペースの所要量の見積り”を参照してください。