スケーラブルデータベースサーバ HiRDB Version 8 解説(Windows(R)用)

[目次][用語][索引][前へ][次へ]

4.3 ページの設計

ここでは,ページの状態,及びページの設計方針について説明します。

<この節の構成>
(1) ページの状態
(2) ページの設計方針
(3) ページ内の未使用領域の比率
(4) ページの確保と解放

(1) ページの状態

ページには次の表に示す状態があります。

表4-3 ページの状態

ページの状態 説明
未使用ページ まだ割り当てられていないページです。
使用中空きページ データの削除によって,データが格納されていないページです。
使用中ページ データが格納されていて,データを追加できる空き領域があるページです。
空き領域の再利用機能を使用している表の場合は,データの削除によってページ内の空き領域が使用できないために,データを追加できなかったページを含みます。
使用中満杯ページ データが格納されていて,データを追加できる空き領域がないページです。
空き領域の再利用機能を使用していない表及びインデクスの場合は,データの削除によってページ内の空き領域が使用できないために,データを追加できなかったページを含みます。

注※
データの削除を実行したトランザクションがCOMMITするまで,データの削除によって発生した空き領域は使用できません。

(2) ページの設計方針

ページ長はデータの入出力時間に影響を与えるため,綿密に設計する必要があります。ページの設計については,マニュアル「HiRDB Version 8 システム導入・設計ガイド」を参照してください。

(3) ページ内の未使用領域の比率

表又はインデクスを定義するときにページ内の未使用領域の比率を設定できます。ページ内の未使用領域の比率を次の図に示します。

図4-4 ページ内の未使用領域の比率

[図データ]

〔説明〕
  • ページ内の未使用領域の比率を30%としています。
  • ページ内の未使用領域の比率は,CREATE TABLE又はCREATE INDEXPCTFREEオプションで指定します。未使用領域比率は0〜99%の範囲で指定でき,省略値は30%となります。
  • 未使用領域には,表へのデータロード(リロード又は表の再編成も含む)時にデータを格納しません。

ページ内の未使用領域の比率を小さくすれば,データの格納効率が向上します。ページ内の未使用領域の比率を大きくすれば,性能が向上することがあります。例えば,データの更新時,次に示すどちらかの条件を満たす場合はデータの入出力回数を削減できます。

ページ内の未使用領域の比率の設計については,マニュアル「HiRDB Version 8 システム導入・設計ガイド」を参照してください。

(4) ページの確保と解放

(a) ページの確保

表を定義したときにはページを確保しません。表にデータを格納するときに必要に応じてページを確保します。一度確保したページ(一度使用したページ)はそのページを解放しないかぎり,再使用できません。

インデクスを定義した場合はデータ件数に応じてページを確保します。データ件数0件の場合は1ページ(ルートページ)だけを確保します。ただし,CREATE INDEXにEMPTYオプションを指定した場合(インデクスの実体を作成しない場合)はページを確保しません。

参考
  • 非FIX表で行長が変わるデータ更新をした場合は行長が減った分の領域を再使用できません。
  • インデクスページは削除ページに格納されていたキー値と同じキー値が追加されないかぎり,そのページを再使用しません。
注意
データの削除によって発生した空き領域があるページを再使用するときは次に示す制限があるので注意してください。
  • 256バイト以上のVARCHAR,BINARY型,抽象データ型,及び繰返し列の分岐行は,そのページを使用できません。
  • セグメントの使用率が100%になるまで,データの挿入時にそのページを使用できません。
  • DELETEを実行したトランザクションがCOMMITを発行するまで,DELETEによって発生した空き領域を使用できません。
(b) ページの解放