Hitachi

ノンストップデータベース HiRDB Version 10 解説


7.4.1 使用中空きページの再利用

〈この項の構成〉

(1) 使用中空きページの解放

バッチジョブなどで表データを大量に削除すると,その表データを格納しているページ(データページ)の一部が使用中空きページになることがあります。また,インデクスを定義している場合は,インデクスのキー値を格納しているページ(インデクスページ)の一部が使用中空きページになります。空きページ解放ユティリティpdreclaim)を実行すると,この使用中空きページを未使用ページ化して再利用できます。これを使用中空きページの解放といいます。使用中空きページの解放を次の図に示します。

図7‒15 使用中空きページの解放

[図データ]

ポイント
  • LOB用RDエリアに格納されているデータの使用中空きページは解放できません。

  • プラグインインデクスの使用中空きページは解放できません。

使用中空きページの解放については,マニュアル「HiRDB システム運用ガイド」を参照してください。

(2) 使用中空きページを解放したときの効果

(a) 表の使用中空きページを解放したときの効果

表の使用中空きページを解放したときの効果を次の表に示します。

表7‒4 表の使用中空きページを解放したときの効果

効果がある項目

説明

効果の

度合い

表を再編成するサイクルを長くできる

使用中空きページを再利用できるためデータの格納効率が良くなります。このため,表を再編成するサイクルを長くできます。

大量データ検索時の性能が向上する

使用中空きページは使用中ページのため検索処理時のサーチ対象になりますが,未使用ページはサーチ対象になりません(サーチ処理がスキップされます)。その分,検索処理の性能が向上します。特に,大量データを検索するときに効果が出ます。

INSERT及びUPDATE時の性能が向上する

使用中ページにデータを格納するとき,データの格納に必要な連続した空き領域を確保できないと,HiRDBはページコンパクションという処理を行います。ページコンパクションとは,データの格納に必要な連続した空き領域を確保するために行われるページ内のデータ詰め替え処理のことです。

使用中空きページを解放するときにページコンパクションも同時に行います。このため,INSERT及びUPDATE処理の延長で行われるページコンパクションが不要になり,その分処理性能が向上します。なお,ページコンパクションの処理対象ページは,満杯ページ及び使用中空きページを除いた使用中ページになります。

分岐行のINSERT及びUPDATE時のエラー発生を抑えられる

未使用ページがない状態で分岐行のINSERT及びUPDATEを実行すると,エラー(KFPA11756-Eメッセージ)になります。使用中空きページの解放で未使用ページが増えるため,このエラーの発生を抑えられます。

(凡例)

○:効果があります。

△:条件によって効果の度合いが変わります。

(b) インデクスの使用中空きページを解放したときの効果

インデクスの使用中空きページを解放したときの効果を次の表に示します。

表7‒5 インデクスの使用中空きページを解放したときの効果

効果がある項目

説明

効果の

度合い

インデクス格納RDエリアの容量不足の発生を抑えられる

空きページ(使用中空きページ)があるのに領域不足になる場合は使用中空きページを解放してください。なお,キー値の更新又は削除が多い場合でもインデクス格納RDエリアの容量不足の発生を抑えられます。

インデクスを再編成するサイクルを長くできる

使用中空きページを再利用できるためデータの格納効率が良くなります。このため,インデクスを再編成するサイクルを長くできます。

インデクスを使用した大量データ検索時の性能が向上する

使用中空きページは使用中ページのため検索処理時のサーチ対象になりますが,未使用ページはサーチ対象になりません(サーチ処理がスキップされます)。その分,検索処理の性能が向上します。特に,大量データを検索するときに効果が出ます。

(凡例)

◎:特に効果があります。

○:効果があります。

△:条件によって効果の度合いが変わります。

特に,削除したキー値を再度登録しない場合にこの機能を適用すると効果があります。同一キー値の追加又は削除を繰り返す場合は使用中空きページを再利用するため,使用中空きページが大量に発生することはありません。しかし,単調増加又は単調減少する列(日付け,通番など)にインデクスを定義してデータの増加に伴い過去のデータを順番に削除する場合は,インデクスページの前半部分に再利用されない使用中空きページが大量に発生します。インデクスページに使用中空きページが作成される処理を次の図に示します。

図7‒16 インデクスページに使用中空きページが作成される処理

[図データ]

なお,使用中空きページの解放後は解放したページにキー値を格納していくため,データの格納効率が良くなります。

(3) 表又はインデクスの再編成との違い

性能面及びデータの格納効率という点から見ると,使用中空きページの解放より表又はインデクスの再編成の方が優れています。しかし,使用中空きページの解放の場合は,ユティリティの実行中に処理対象表又はインデクスをアクセスできます。再編成の場合は,ユティリティの実行中に処理対象表又はインデクスをアクセスできません。このため,使用中空きページの解放の場合は業務を中断する必要がありません。

再編成をするか,使用中空きページを解放するかはデータベース状態解析ユティリティの実行結果から判断してください。判断基準を次に示します。