• 検索結果がありません。

セグメントの設計

ドキュメント内 HiRDB Version 9 解説 (ページ 152-156)

(1) セグメントの状態

セグメントには次の表に示す状態があります。

表 4‒2 セグメントの状態

セグメントの状態 説明

使用中セグメント 表又はインデクスのデータを格納しているセグメントです。特に,データが満杯でセグメン ト内にデータを追加できないセグメントを満杯セグメントといい,データの削除でセグメン ト内の全ページが空きページ(使用中空きページ又は未使用ページ)のセグメントを使用中 空きセグメントといいます。

未使用セグメント 使用されたことがないセグメントです。このセグメントは RD エリア内のすべての表(又は インデクス)が使用できます。

空きセグメント データを格納していないセグメントです。使用中空きセグメントと未使用セグメントは空き

セグメントになります。

注※

使用中セグメントを使用できるのは,このセグメントにデータを格納した表又はインデクスだけです。

ほかの表又はインデクスはこのセグメントを使用できません。

(2) セグメントの設計方針

セグメントサイズはデータの入出力時間又はディスク所要量に影響を与えるため,綿密に設計する必要があ ります。通常は 1 セグメント当たり 10〜20 ページ程度にすることをお勧めします。セグメントの設計に ついては,マニュアル「HiRDB Version 9 システム導入・設計ガイド」を参照してください。

(3) セグメント内の空きページ比率

表を定義するときにセグメント内の空きページ比率を設定できます。セグメント内の空きページ比率を次 の図に示します。

図 4‒2 セグメント内の空きページ比率

〔説明〕

• セグメント内の空きページ比率を 30%としています。したがって,10 ページ中 3 ページが空き ページになります。

• ここで指定した空きページには,表へのデータロード(リロード又は表の再編成も含む)時にデー タを格納しません。

セグメント内の空きページ比率を小さくすれば,データの格納効率が向上します。

セグメント内の空きページ比率を大きくすれば,性能が向上することがあります。例えば,クラスタキーを 定義した表にデータを追加する場合,セグメント内の空きページ比率を設定しておくと,クラスタキーの値 に近い場所のページにデータが格納されるため,データの入出力回数を削減できます。

セグメント内の空きページ比率の設計については,マニュアル「HiRDB Version 9 システム導入・設計ガ イド」を参照してください。

(4) セグメントの確保と解放

表を定義したときにはセグメントを確保しません。表にデータを格納するときに必要に応じてセグメント を確保します。一度確保したセグメント(一度使用したセグメント)はそのセグメントを解放しないかぎ り,ほかの表又はインデクスが使用できません。このため,データの追加と削除を繰り返した場合,データ 量が増えていないのに RD エリアが容量不足になることがあります。これを防ぐには次に示す操作を定期 的に行ってセグメントを解放してください。

• データベース再編成ユティリティ(pdrorg コマンド)による表の再編成又はインデクスの再編成

• 空きページ解放ユティリティ(pdreclaim コマンド)による使用中空きセグメントの解放

表の再編成,インデクスの再編成,使用中空きセグメントの解放については,マニュアル「HiRDB Version 9 システム運用ガイド」を参照してください。なお,これらの操作以外にも次に示す操作をした場合はセグ メントを解放します。

• PURGE TABLE 文の実行

• RD エリアの再初期化

• 表の定義の削除

• インデクスの定義の削除

• データロードを作成モード(-d オプション指定)で実行

(5) 空き領域の再利用

空き領域の再利用機能を使用すると,データの削除でできる空き領域を有効活用できます。

(a) データ格納時のサーチ方式

表にデータを格納するとき,格納領域をサーチする方式には次の二つのページサーチモードがあります。

• 新規ページ追加モード

使用中セグメントの最終ページが満杯になると,新規に未使用セグメントを確保します。RD エリア中 に未使用ページがなくなると,使用中ページの空き領域を使用中セグメントの先頭からサーチして空き 領域にデータを格納します。

• 空きページ再利用モード

使用中セグメントの最終ページが満杯になると,未使用セグメントを確保する前に使用中セグメント内 の使用中ページの空き領域をサーチします。また,次回サーチ開始位置を記憶し,次に空き領域をサー チするときそこからサーチを開始します。

4 データベースの物理構造

117

(b) 空き領域の再利用機能とは

空き領域の再利用機能とは,表の使用中セグメントがユーザの指定したセグメント数に達し,そのセグメン トが満杯になるとページサーチモードを空きページ再利用モードに切り替えて,使用中ページの空き領域を 使用する機能です。指定した数のすべてのセグメントに空き領域がなくなると,新規ページ追加モードに切 り替わり,新規に未使用セグメントを確保します。なお,セグメント数を指定しないと RD エリア中に未使 用ページがなくなるまで空き領域を再利用しません。空き領域の再利用機能を使用しない場合,毎回使用中 セグメントの先頭から空き領域をサーチします。この機能を使用している場合,空きページ再利用モードに 切り替わった後,次回サーチ位置を記憶してそれ以降をサーチするのでこの機能を使用しない場合より効率 良くサーチできます。空き領域の再利用機能の概要を次の図に示します。

図 4‒3 空き領域の再利用機能の概要

〔説明〕

RD エリア中に未使用ページがなくなると,その後データが挿入されるたびに使用中セグメントの先 頭から使用中ページの空き領域をサーチして空き領域にデータを格納します。

• 空き領域の再利用機能を使用した場合(セグメント数指定あり)

指定したセグメント数に達した後で表にデータを挿入しようとすると,未使用セグメントを確保し ないで,使用中ページの空き領域を使用中セグメントの先頭からサーチしてそこにデータを格納し ます。そこで次回サーチ開始位置を記憶しておき,次に空き領域をサーチするときはそこからサー チを開始します。

• 空き領域の再利用機能を使用した場合(セグメント数指定なし)

RD エリア中に未使用ページがなくなってからデータを挿入しようとすると,使用中ページの空き領 域を使用中セグメントの先頭からサーチしてそこにデータを格納します。そこで次回サーチ開始位 置を記憶しておき,次に空き領域をサーチするときはそこからサーチを開始します。

空き領域の再利用機能の詳細は,マニュアル「HiRDB Version 9 システム導入・設計ガイド」を参照して ください。

(c) 適用基準

削除と挿入を繰り返すため,データ量に対してセグメントが大量に消費され,頻繁に再編成しなければなら ない業務で,再編成の回数をできるだけ減らしたい場合に空き領域の再利用機能を使用してください。

(d) 環境設定

空き領域の再利用機能を使用するための環境設定について次に示します。詳細は,マニュアル「HiRDB Version 9 システム導入・設計ガイド」を参照してください。

1.pd_assurance_table_noオペランドに空き領域の再利用機能を使用する表数を指定します。

2. 定義系 SQL の CREATE TABLE のSEGMENT REUSEオプションでセグメント数を指定します。作 成済みの表に対しては ALTER TABLE の SEGMENT REUSE オプションで指定します。

(e) 注意事項

次の場合,空き領域の再利用機能は動作しません。

• ハッシュ分割表のリバランス機能でデータを格納するとき

• データディクショナリ表を格納するとき

• データロードやデータベース再編成ユティリティ(pdrorg)で表にデータを格納するとき

• ユーザ LOB 用 RD エリアのとき

4 データベースの物理構造

119

ドキュメント内 HiRDB Version 9 解説 (ページ 152-156)