14.2.3 セグメントの確保と解放
表を定義したときにはセグメントを確保しません。表にデータを格納するときに必要に応じてセグメントを確保します。一度確保したセグメント(一度使用したセグメント)はそのセグメントを解放しないかぎり,ほかの表又はインデクスが使用できません。このため,データの追加と削除を繰り返した場合,データ量が増えていないのにRDエリアが容量不足になることがあります。これを防ぐには次に示す操作を定期的に行ってセグメントを解放してください。
-
データベース再編成ユティリティ(pdrorgコマンド)による表の再編成又はインデクスの再編成
-
空きページ解放ユティリティ(pdreclaimコマンド)による使用中空きセグメントの解放
表の再編成,インデクスの再編成,使用中空きセグメントの解放については,マニュアル「HiRDB Version 9 システム運用ガイド」を参照してください。
なお,これらの操作以外にも次に示す場合はセグメントを解放します。
-
表の定義を削除した場合
-
表の全行削除をした場合
-
表の所有者(スキーマ)を削除した場合
-
インデクスの定義を削除した場合
-
表の主キーを削除した場合
-
RDエリアの再初期化をした場合
-
データロードを作成モード(-dオプション指定)で実行した場合
-
表の再編成をした結果,空きセグメントができた場合
また,次に示す場合では,そのトランザクションで確保したセグメントを解放します。
-
データベース作成ユティリティのデータロード処理又はインデクス一括作成処理でロールバックが発生した場合
-
データベース再編成ユティリティのリロード処理中にロールバックが発生した場合