7.3.1 表の再編成
データを削除しても,そのデータを格納しているセグメント及びページは解放されません。このため,データの削除を繰り返すと,表中に無効領域が増えてデータの格納効率が悪くなり,データ量が増えていないのにRDエリアが容量不足になることがあります。
また,データの追加を繰り返すと,クラスタキーの値に近い場所のページにデータが格納されないため,データの入出力回数が増えます。このため,データを検索するときの性能が低下します。データベース再編成ユティリティで表の再編成を実行すると,データを再度格納し直すためこれらの現象を防げます。表の再編成を次の図に示します。
- 〔説明〕
(1) 表の再編成の実行単位
表の再編成は次に示す単位で実行できます。
-
表単位の再編成
-
RDエリア単位の再編成
-
スキーマ単位の再編成
(a) 表単位の再編成
再編成処理を表単位に行います。通常はこの方法を実施してください。データベース状態解析ユティリティの結果から,表全体を再編成する必要がある場合に表単位の再編成を実行します。表単位の再編成を次の図に示します。
- 〔説明〕
-
データベース再編成ユティリティの-tオプションで再編成対象の表を指定します。
(2) 大量データを格納した表を再編成する場合
大量データを格納した表を再編成する場合,同期点指定の再編成を実施するかどうかを検討してください。
通常,表の再編成処理では全データの格納処理を完了するまでトランザクションを決着できません。このため,データベース再編成ユティリティ実行中はシンクポイントダンプを有効化できません。したがって,大量データの再編成処理中にHiRDBが異常終了すると,HiRDBの再開始処理に長い時間を必要とします。これを防ぐために,データ格納時(リロード処理時)に任意の件数で同期点を設定してトランザクションを決着できます。これを同期点指定の再編成といいます。
同期点指定の再編成をするには,データベース再編成ユティリティのoption文で同期点行数(何件データを格納したら同期点を取得するか)を指定してください。
(3) 再編成時期予測機能
表やインデクスの再編成をするかどうか,又はRDエリアを拡張するかどうかは,出力されたメッセージや,pddbstコマンドの実行結果から,再編成する表はどれか,いつ再編成する必要があるかなどユーザが総合的に判断する必要がありました。そのため,再編成する必要がない表を再編成したり,出力されたメッセージを見逃したため,再編成する必要がある表を再編成しなかったりする可能性がありました。
これらの運用を簡単にするためにHiRDBが再編成時期の予測を行うようにしました。これを再編成時期予測機能といいます。再編成時期予測機能の概要を次の図に示します。
注※ RDエリアのメンテナンスが必要になる予定日をDBメンテナンス予定日といいます。
再編成時期の予測は,次に示す二つのフェーズに分かれています。
-
解析情報表及び運用履歴表を入力情報にして,pddbstコマンドで再編成時期の予測データを解析します。ユーザはpddbstコマンドの実行結果を参照し,必要に応じて次に示すどれかの操作を行います。
-
pdrorgコマンドによる表又はインデクスの再編成
-
pdreclaimコマンドによる使用中空きページ及び空きセグメントの解放
-
pdmodコマンドによるRDエリアの拡張
-
pdmodコマンドによるRDエリアの自動増分
-
pdmodコマンドによるRDエリアの再初期化
-
また,再編成時期予測機能には次の二つのレベルがあります。pddbstでのデータベースの解析結果を蓄積する時間は,予測レベル1は比較的短時間で実行できますが,予測レベル2は長時間掛かってしまうことがあります。
-
RDエリアの容量不足を予測します。RDエリアの空き容量に余裕がある間,こまめに再編成を行わない運用をするユーザ向けです。
-
RDエリアの容量不足のほかに,表及びインデクスの格納効率の悪化を予測します。RDエリアの空き容量に関係なく,表やインデクスへのアクセス効率が低下した場合は,すぐに再編成を行う運用をするユーザ向けです。
再編成時期予測機能については,マニュアル「HiRDB システム運用ガイド」,及び「HiRDB コマンドリファレンス」のデータベース状態解析ユティリティを参照してください。