Hitachi

ノンストップデータベース HiRDB Version 9 コマンドリファレンス(Windows(R)用)


15.5.1 形式および規則

再編成時期予測機能では,あらかじめ決まっている各項目の基準値を基に予測していますが,この基準値はユーザの環境に合わせて変更できます。基準値定義ファイルには,変更後の各項目の基準値を指定します。

〈この項の構成〉

(1) 形式

<threshold>
項目名=基準値
     :
[rdarea=RDエリア名]
項目名=基準値
     :
[table=認可識別子.表識別子]
項目名=基準値
     :
[index=認可識別子.インデクス識別子]
項目名=基準値
     :

(2) 説明

<threshold>

共通項目であることを意味しています。ファイルの先頭行には必ず<threshold>を指定してください。

[rdarea=RDエリア名]

RDエリアごとに基準値を変える場合に指定します。

[table=認可識別子.表識別子]

表ごとに基準値を変える場合に指定します。

指定した認可識別子のすべての表を対象としたい場合は,allを指定してください。ディクショナリ表を指定する場合は,認可識別子を省略します。

[index=認可識別子.インデクス識別子]

インデクスごとに基準値を変える場合に指定します。

指定した認可識別子のすべてのインデクスを対象としたい場合は,allを指定してください。

項目名=基準値

基準値を変更する項目名と基準値を指定します。指定できる項目名については,「(4)基準値を変更できる項目名」を参照してください。

<規則>
  1. 同じ項目名を複数指定した場合,最後の指定が有効となります。

  2. 指定値に*を指定した場合,その項目を再編成時期予測機能の判定項目から除外します。定期的に,PURGE TABLEや初期データロード(既存データを削除してpdload)を行う表の場合,再編成をする必要がありません。そのため,これらの資源を再編成時期予測機能の対象外とするときに,*を指定してください。再編成時期予測機能は,PURGE TABLEなどが定期的に実行されなかった場合を想定して,予測を行っているためです。

(3) 基準値定義ファイル中の指定規則

  1. 最初の[rdarea=RDエリア名],[table=認可識別子.表識別子],又は[index=認可識別子.インデクス識別子]の前に指定した項目は,共通の指定として扱われます。

  2. <threshold>,[rdarea=RDエリア名],[table=認可識別子.表識別子],及び[index=認可識別子.インデクス識別子]に同一項目がある場合,最後の指定が有効となります。

  3. 同じ[rdarea=RDエリア名],[table=認可識別子.表識別子],又は[index=認可識別子.インデクス識別子]が複数あり,その中に同じ項目名を指定している場合,最後の指定が有効となります。

  4. <threshold>,[rdarea=RDエリア名],[table=認可識別子.表識別子],[index=認可識別子.インデクス識別子],及び項目名=基準値は,それぞれ1行で指定してください。

  5. 「項目名」,「=」,「指定値」の間,及び「項目名」の前には,空白及びタブは指定できません。

  6. /*と*/で囲まれた部分は無視されます。また,空行も無視されます。

  7. 基準値定義ファイルの内容に誤りがある場合,エラー終了します。

  8. RDエリア名,認可識別子,表識別子,又はインデクス識別子に,英小文字又は空白が含まれる場合は,「\""」と「"\"」で囲んでください。英小文字を「\""」と「"\"」で囲まないと,すべて大文字として扱われます。

  9. 全表共通,及び全インデクス共通(表識別子,インデクス識別子にallを指定)は,指定表共通,指定インデクス共通,及び指定RDエリア共通の前に指定してください。

(4) 基準値を変更できる項目名

基準値を変更できる項目と基準値を変更する目安を次の表に示します。

表15‒10 基準値を変更できる項目

項番

項目名

指定範囲

基準値

内容

変更可否

R

T

I

1

EMPTY_PAGE_RATIO

*,

10〜100

30

総割り当てページ数に対して,pdreclaimで解放できるページ数の比率(単位:%)を指定します。

2

UNDER_PAGE_RATIO

10〜100

10,

又は80-

PCTFREE

項番3の判定に使用するページ使用率(単位:%)を指定します。

3

UNUSED_PAGE_RATIO

*,

10〜100

50

ページ使用率が項番2の指定値以下のページ数と総割り当てページ数の比率(単位:%)を指定します。

4

BRANCH_ROW

*,

10〜100

50

複数ページにわたって格納された行数と総行数の比率(単位:%)を指定します。

×

5

USED_SEGMENT_LOB

*,

10〜100

80

LOB用RDエリアの最終セグメント番号と総セグメント数の比率(単位:%)を指定します。

×

×

6

USED_SEGMENT_RATIO_CLUS

*,

10〜100

50

クラスタリングデータページに割り当てられた全セグメント数に対する,使用率100%のセグメント数の比率(単位:%)を指定します。

×

7

DIFF_PCTFREE_M

*,

10〜100

10

ページ使用率の下限値を決める値(単位:%)を指定します。

指定する値は,PCTFREEに指定した未使用領域比率を基に算出したページ使用率から,ページ使用率の下限値を引いた値となります。

指定値が(100−PCTFREEに指定した未使用領域比率)より大きい場合,(100−PCTFREEに指定した未使用領域比率)が指定値として仮定されます。

*を指定した場合は,項番8の指定値だけ有効になります。

8

DIFF_PCTFREE_P

*,

10〜100

10

ページ使用率の上限値を決める値(単位:%)を指定します。

指定する値は,ページ使用率の上限値から,PCTFREEに指定した未使用領域比率を基に算出したページ使用率を引いた値となります。

指定値がPCTFREEに指定した未使用領域比率より大きい場合,PCTFREEに指定した未使用領域比率が指定値として仮定されます。

*を指定した場合は,項番7の指定値だけ有効になります。

9

DIFF_PCTFREE_RATIO

*,

10〜100

*

ページ使用率が項番7の下限値以下のページと,項番8の上限値以上のページの数と総割り当てページ数の比率(単位:%)を指定します。省略した場合は,この項目についての解析はしません。

10

DELETE_ROWID_RATIO

*,

1〜100

30

インデクスが管理する行の総数の中で,残存エントリが管理する削除行数の比率(単位:%)を指定します。

×

11

USED_SEGMENT

*,

10〜100

80

RDエリア全体の使用セグメント数と総セグメント数の比率(単位:%)を指定します。

×

×

12

EXTEND_COUNT_MIN

0〜24

0

RDエリアの自動増分で増分できる最低限の増加回数を指定します。EXTEND_COUNT_MIN≦EXTEND_COUNTになるようにしてください。

×

×

13

EXTEND_COUNT

0〜24

0

RDエリアの自動増分で増分できる増分回数を指定します。EXTEND_COUNT_MIN≦EXTEND_COUNTになるようにしてください。自動増分した結果,HiRDBファイルシステム領域が満杯になるかどうかは,pddbstではチェックできません。そのため,EXTEND_COUNTの指定値は,HiRDBファイルシステム領域中のRDエリア数と最大増分回数を考慮し,決める必要があります。

×

×

(凡例)

R:RDエリア

T:表

I:インデクス

○:該当する項目名の基準値を変更できます。

×:該当する項目名の基準値を変更できません。

表15‒11 基準値を変更する目安

項番

項目名

基準値

メンテナンス要否の判定方法

基準値を変更する目安

1

EMPTY_PAGE_RATIO

(p)=30%

ページ使用率0%の使用中ページの割合が(p)%以上になると,空きページの解放が必要と判断します。

RDエリアの空き容量が少ない場合で,無効なページを少しでも早く解放したいときは,(p)を小さくしてください。

2

UNDER_PAGE_RATIO

(a)=X-20%

ページ使用率が(a)%以下の使用ページ数の割合が,全使用中ページの(p)%以上になると,再編成が必要と判断します。

  • ページサイズに対して格納行長が極端に短い場合で,再編成した直後でもページ使用率が(a)%に満たない表のときは,(a)の値を小さくしてください。

  • 無効領域があるページの割合をできるだけ小さくしたい場合,(p)の値を小さくしてください。

  • NO SPLIT指定のない定義長256バイト以上の可変長文字列がある表の場合で,再編成した直後でもページ使用率が(a)%以下のページが50%以上あるとき(分岐した可変長文字列データの方が,分岐しないデータよりも多い状態),(p)を大きくしてください。

  • RDエリアの空き容量が少ない場合で,無効領域があるページを少しでも早く解放したいときは,(p)を小さくしてください。

3

UNUSED_PAGE_RATIO

(p)=50%

4

BRANCH_ROW

(p)=50%

総行数に対する,分岐行の行数の割合が(p)%以上になると,再編成が必要と判断します。

データ長が長くなるUPDATE処理が多い場合で,検索性能の維持が必要なときは,(p)の値を小さくしてください。

5

USED_SEGMENT_LOB

(p)=80%

LOB用RDエリアの最終セグメント番号が,総セグメント数の(p)%以上となった場合,再編成して(p)%以上になるときはRDエリアの拡張が必要と判断します。また,再編成して(p)%未満となる場合は,再編成が必要と判断します。

急激に格納データ量が増加する可能性がある場合で,早めに対処する必要があるときは,(p)を小さくしてください。

6

USED_SEGMENT_RATIO_CLUS

(p)=50%

セグメント内の使用ページ率が100%のセグメント(空きページがないセグメント)数が,総使用セグメント数の割合(p)%以上になると,未使用領域比率による空きではなく,未使用ページ比率による空きの消費が始まっているので,再編成が必要と判断します。

同一ページ内にデータが格納できる間はクラスタリング効果が保たれているが,同一セグメントに格納する状態が既にクラスタリングの効果がなくなっていると判断できる場合,(p)を小さくしてください。

7

DIFF_PCTFREE_M

(a)=X-10%

ページ使用率が(a)%〜(b)%の範囲外にある使用ページ数の割合が,総使用ページ数の(p)%以上になると,再編成が必要と判断します。

ページ使用率が高い状態であっても再編成を必要と判断したい場合(行長が長くなるUPDATEが頻発する表や,クラスタキーを定義した表への中間キーを持つデータのINSERTが頻発する表)には,(p)を指定してください。なお,重複キーを多量に持つインデクスの場合,重複キーを格納するページはPCTFREEを無視して格納されるため,(p)を指定する場合は大きめの値にしてください。

8

DIFF_PCTFREE_P

(b)=X+10%

9

DIFF_PCTFREE_RATIO

(p)=*

10

DELETE_ROWID_RATIO

(p)=30%

インデクスが管理する行の総数の中で,残存エントリが管理する削除行数の比率が(p)%以上となった場合,再編成が必要と判断します。

  • インデクスの残存エントリによるオーバヘッドを削減したい場合,及び残存エントリによって発生した空き領域を少しでも早く解放したい場合は,(p)の値を小さくしてください。

  • 削除したキー値と同一のキー値をすぐに格納する場合は,インデクスの残存エントリが再利用されますので,(p)の値を大きくしてください。

11

USED_SEGMENT

(p)=80%

RDエリアの使用セグメント数が総セグメント数の(p)%以上となった場合,再編成が必要と判断します。

再編成後でも(p)%以上となる場合は,拡張が必要と判断しますが,自動増分指定があるRDエリアでは(a)回まで自動増分ができると判断し,拡張の指示はしません。

  • RDエリアの拡張が指示された場合に,早めに容量不足を検知できるようにしたいときは,(p)の値を小さくしてください(例えば,予備のディスクがない場合に容量不足が発生したとき,ディスクの手配から開始しないといけないケースなど)。

  • 急激に格納データ量が増加する可能性がある場合に,早めに対処したいときは,(p)を小さくしてください。

12

EXTEND_COUNT_MIN

(a)=23回

13

EXTEND_COUNT

(凡例)

X:100−PCTFREEの第1引数の指定値

(5) 基準値定義ファイルの指定例

基準値定義ファイルの指定例を次に示します。

<threshold>  ..................................共通指定
USED_SEGMENT=70
USED_SEGMENT_LOB=65
  :
[table=all]  ..................................全表共通指定
EMPTY_PAGE_RATIO=30
USED_SEGMENT=20
  : 
[index=all]  ..................................全インデクス共通指定
EMPTY_PAGE_RATIO=20
USED_SEGMENT=20
  : 
[table=認可識別子.表名称]  ....................指定表共通指定
EMPTY_PAGE_RATIO=35
USED_SEGMENT=30
  :
[index=認可識別子.インデクス名称]  ............指定インデクス共通指定
EMPTY_PAGE_RATIO=80
USED_PAGE_RATIO=60
  :
[rdarea=RDエリア名称]  ......................RDエリア個別指定
EXTEND_COUNT=10
  :
[table=認可識別子.表名称]  ....................RDエリア内の表個別指定
EMPTY_PAGE_RATIO=35
USED_SEGMENT=30
  :
[index=認可識別子.インデクス名称]  ............RDエリア内のインデクス個別指定
EMPTY_PAGE_RATIO=80
USED_PAGE_RATIO=60
  :