15.3.2 ページ内の未使用領域の比率の設定
表とインデクスを定義するときに,ページ内に割り当てる未使用領域の割合をページ内の未使用領域の比率といいます。未使用領域を設定しておくと,データベース作成ユティリティ(pdload)又はデータベース再編成ユティリティ(pdrorg)でデータを格納するとき,未使用領域にはデータは格納されません。
ただし,データベース作成ユティリティ(pdload)で-yオプション又はoption文を指定して実行し,新しいページが確保できなかった場合は,未使用領域にもデータが格納されます。
ページ内の未使用領域の概要を次の図に示します。
図15-3 ページ内の未使用領域の概要
![[図データ]](figure/zu140030.gif)
- <この項の構成>
- (1) 設定の効果
- (2) 適用基準
- (3) 設定方法
- (4) 注意
- (5) ページ内の未使用領域の比率の求め方
(1) 設定の効果
- UPDATE文で行長が元の行より長くなるような更新をしても,連続した空き領域が更新後の行長よりも大きい場合は,該当する行がそのページに収まるようになります。
- INSERT文で行を繰り返し追加するときに,クラスタキーの値に近い場所のページに,1ページ内が一杯になるまで行を追加できるようになります。
(2) 適用基準
- クラスタキーを指定した表に行を追加する場合に設定します。
- FIX属性の表の場合,データが昇順になるようなときは,ページ内の未使用領域の比率を0にした方が,格納効率が良くなります。
- 行長が元の行よりも長くなるような更新をする場合に設定します。
- 行長が元の行長より長くなるのは,次に示す更新をしたときです。
- ナル値から実データに更新したとき
- データ型がVARCHAR,NVARCHAR,MVARCHAR,及びBINARYの列を長い値になるように更新したとき
(3) 設定方法
ページ内の未使用領域の比率は,定義系SQLのCREATE TABLE又はCREATE INDEXのPCTFREEオプションで指定します。
(4) 注意
設定した未使用領域に余裕がない場合は,行長を元の行長より長くなるような更新をしたときに,1行が複数ページにわたるため,入出力回数が増えます。
(5) ページ内の未使用領域の比率の求め方
- 最初に格納した行の行長がL1で,最終的にL2になる場合は,次に示す計算式で求めた値を未使用領域の比率とするのが一般的です。
ページ内の未使用領域の比率=((L2-L1)÷L2)×100(%)
- 表にクラスタキーを指定している場合は,次のように求めます。
- データベース作成ユティリティ(pdload)でこの表にデータを格納する件数をページ当たりで求めます。これをm件とします。
- その後,更に何件のデータを格納するかを求めます。これをn件とします。
- 1.と2.で求めたmとnから,次に示す計算式でページ内の未使用領域の比率を求めます。
ページ内の未使用領域の比率=(n÷(m+n))×100(%)