Hitachi

ノンストップデータベース HiRDB Version 10 システム定義(UNIX(R)用)


9.2.22 グローバルバッファに関するオペランド

◆ pd_dbbuff_lru_option = SEPARATE|MIX

グローバルバッファのLRU管理方式を指定します。ただし,次のどちらかに該当する場合は無条件にMIXを仮定します。

  • pd_dbsync_pointにcommitを指定している場合

  • pd_dbbuff_binary_data_lruにNを指定している場合

SEPARATE:

参照バッファ,及び更新バッファをそれぞれ独立したLRUで管理します。グローバルバッファの不足時には,グローバルバッファ内のアクセスした参照バッファの中で,最も古いバッファがメモリから追い出されます。オンライン業務のように1トランザクション当たりの参照,更新件数が比較的少ない場合に指定します。

MIX:

グローバルバッファを一括したLRUで管理します。グローバルバッファの不足時には,グローバルバッファ内のアクセスしたバッファで,最も古いバッファがメモリから追い出されます。オンライン業務とバッチ業務など,大量検索,大量更新が共存する場合に指定します。

グローバルバッファのLRU管理方式については,マニュアル「HiRDB 解説」を参照してください。

◆ pd_dbbuff_binary_data_lru = Y|N

BINARY型を指定した列にアクセスするUAPを実行する場合,グローバルバッファのLRU管理を行うかどうかを指定します。UAPがアクセスするバイナリデータのLRU管理抑止設定については,マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

Y:

バイナリデータが格納された分岐行ページにLRU管理を適用して,グローバルバッファ上にキャッシュします。

N:

バイナリデータが格納された分岐行ページにLRU管理を適用しないで,アクセス頻度に関係なく最も古くアクセスしたページとしてグローバルバッファ上にキャッシュします。

ただし,基本行ページはLRU管理を適用してグローバルバッファ上にキャッシュします。

グローバルバッファを使用してサイズが大きいバイナリデータに大量にアクセスするUAPを実行する場合,バイナリデータをグローバルバッファにキャッシュするために,グローバルバッファにキャッシュされた直近の内容がメモリから追い出され,一時的に性能を低下させてしまうことがあります。その場合,サイズが大きいバイナリデータのアクセス頻度が低いのであれば,LRU管理を抑止することによって性能低下を回避できます。

それぞれの指定値によるLRU管理,メリット及びデメリットを次の表に示します。

項目

オペランドの指定値

Y

N

LRU管理

すべてのグローバルバッファをLRUで管理し,グローバルバッファが不足したときは,グローバルバッファプール内で最も古くアクセスしたグローバルバッファをメモリから追い出します。

バイナリデータが格納された分岐行ページのグローバルバッファのLRU管理を抑止し,最も古くアクセスしたページとしてキャッシュします。グローバルバッファが不足したときは,バイナリデータが格納された分岐行ページのグローバルバッファをメモリから追い出します。

メリット

アクセスデータの種類に関係なく,グローバルバッファを均等に使用するため,UAPの性能が偏りません。

サイズが大きいバイナリデータに連続してアクセスしても,グローバルバッファからバイナリデータを優先的に追い出すため,バイナリデータ以外の検索性能を維持できます。

デメリット

サイズが大きいバイナリデータに連続してアクセスするとグローバルバッファから直近にアクセスしたデータが追い出されるため,バイナリデータ以外の検索性能が低下します。

  • サイズが大きいバイナリデータにアクセスするUAPは,バッファヒット率が低くなります。それによって,入出力回数が増加し,レスポンス性能が低下する可能性があります。

  • バイナリデータの更新時に,バイナリデータの分岐行の追い出しが多発することでシステムログ量が増加します。

《指定値の目安》
  • 通常はこのオペランドを指定しないでください。

  • バイナリデータにアクセスしないで,蓄積するだけのシステムの場合は,Nを指定してください。バイナリデータに頻繁にアクセスするシステムの場合,このオペランドにNを指定するとデメリットの影響が大きいので適用するときは十分検討してください。

  • BINARY型やBINARY型の属性を含む抽象データ型,及びXML型などのサイズの大きなバイナリデータを含む表が存在するシステムの場合,サイズの大きなバイナリデータにほとんどアクセスしないときは,このオペランドにNを指定してください。バイナリデータが格納されたページをアクセス頻度に関係なく優先的にグローバルバッファから追い出し対象とするため,バイナリデータ以外のデータ格納ページがグローバルバッファから追い出される頻度を少なくできます。

《クライアント環境定義との関連》

クライアント環境定義のPDDBBUFLRUにNOを指定した場合は,このオペランドの指定に関係なく,指定したUAPでアクセスするすべてのデータのLRU管理を抑止します。

《ほかのオペランドとの関連》

pd_dbbuff_lru_optionオペランドにSEPARATEを指定しても,このオペランドでNを指定すると,pd_dbbuff_lru_optionオペランドにMIXを仮定します。

◆ pd_dbbuff_dev_sector_size = 512|4096

グローバルバッファを,論理セクタ長が4096バイトのディスク対応にするかどうかを指定します。

512:グローバルバッファを論理セクタ長が4096バイトのディスクに対応しません。

4096:グローバルバッファを論理セクタ長が4096バイトのディスクに対応します。

《指定値の目安》

RDエリアを格納するHiRDBファイルシステム領域を,論理セクタ長が4096バイトのディスクに作成する場合に,4096を指定してください。

AIXの場合は指定しても無視されます。

《注意事項》

このオペランドに4096を指定すると,グローバルバッファの共用メモリサイズが最大でpdbufferオペランド数×4KB増加します。詳細はマニュアル「HiRDB システム導入・設計ガイド」の「グローバルバッファが使用する共用メモリの計算式」を参照してください。

◆ pd_dbbuff_modify = Y|N

HiRDBの稼働中にpdbufmodコマンドでグローバルバッファを動的変更するかどうかを指定します。グローバルバッファの動的変更については,マニュアル「HiRDB システム運用ガイド」を参照してください。

Y:グローバルバッファを動的変更します。

N:グローバルバッファを動的変更しません。

《前提条件》

このオペランドにYを指定する場合(グローバルバッファを動的変更する場合)はHiRDB Advanced High Availabilityが必要になります。

《ほかのオペランドとの関連》

このオペランドは次に示すオペランドと関連があります。

  • SHMMAX

  • pdbuffer

  • pd_max_add_dbbuff_no

  • pd_max_add_dbbuff_shm_no

《各見積もり式への影響》

pd_dbbuff_modifyオペランドの指定値を変更すると,次の見積もり式に影響があります。

マニュアル「HiRDB システム導入・設計ガイド」:

  • 「HiRDB/シングルサーバのメモリ所要量の見積もり」の「グローバルバッファが使用する共用メモリの計算式」

  • 「HiRDB/シングルサーバのメモリ所要量の見積もり」の「ユニットコントローラが使用する共用メモリの計算式」

  • 「HiRDB/パラレルサーバのメモリ所要量の見積もり」の「グローバルバッファが使用する共用メモリの計算式」

  • 「HiRDB/パラレルサーバのメモリ所要量の見積もり」の「ユニットコントローラが使用する共用メモリの計算式」

  • 「ステータスファイルの容量の見積もり」の「Sの求め方」

  • 「シングルサーバが使用する共用メモリの計算式」の「計算式2」,「計算式4」,「計算式5」,「計算式6」

  • 「ディクショナリサーバが使用する共用メモリの計算式」の「計算式2」,「計算式3」,「計算式4」,「計算式5」

  • 「バックエンドサーバが使用する共用メモリの計算式」の「計算式2」,「計算式4」,「計算式5」,「計算式6」

◆ pd_dbbuff_rate_updpage = デファードライトトリガの要求比率

〜<符号なし整数>((1〜100))(単位:%)

デファードライトトリガのトリガ契機を更新バッファ比率で指定します。

《指定値の目安》
  • 通常はこのオペランドを省略してください。デファードライトの書き込み処理がシンクポイントダンプ取得間隔時間内で終了しない場合など,更新バッファ数を減らし,更新バッファヒット率を多少抑えてでも書き込み時間を短縮したいときにこのオペランドを指定します。指定する場合は,50%(HiRDBが設定する初期値)を目安にし,マニュアル「HiRDB システム運用ガイド」の「デファードライト処理のチューニング」及び「デファードライト処理適用時のシンクポイント処理時間のチューニング」を参照してオペランドの値を決定してください。

  • このオペランドを指定すると,トリガの出力契機が一定となるため,更新量が増加すると更新バッファヒット率が低下し,レスポンスが遅延することがあります。

《ほかのオペランドとの関連》

このオペランドは,pdbufferオペランドの-yオプションと次に示す関係があります。

  • pd_dbbuff_rate_updpageオペランドの指定値は全グローバルバッファに適用されます。

  • pdbufferオペランドの-yオプションの指定値はグローバルバッファごとに適用されます。

  • pdbufferオペランドの-yオプションの指定値が優先されます。

  • pdbufferオペランドの-yオプションを指定しない場合,デファードライトトリガ契機の更新バッファ面数は,このオペランドの指定によって次のように異なります。

    pd_dbbuff_rate_updpageオペランドの指定

    デファードライトトリガ契機の更新バッファ面数

    あり

    グローバルバッファ面数×pd_dbbuff_rate_updpageオペランドの指定値

    なし

    HiRDBが自動計算します。

◆ pd_dbbuff_trace_level = グローバルバッファ制御情報トレース取得レベル

〜<符号なし整数>((0〜2147483647))《0》

グローバルバッファ制御情報トレースの取得レベルを符号なし整数で指定します。取得レベルは,グローバルバッファ制御情報トレース取得機能の各機能に対応したレベル値を合計して算出します。0を指定した場合,グローバルバッファ制御情報トレースを取得しません。グローバルバッファ制御情報トレース取得機能とレベル値の対応を次に示します。グローバルバッファ制御情報トレース取得機能の詳細については,マニュアル「HiRDB システム運用ガイド」を参照してください。

グローバルバッファ制御情報トレース取得機能

レベル値

シンクポイント出力同期制御情報取得機能

1

《指定値の目安》

通常は,このオペランドを指定する必要はありません。障害調査などで保守員にこのオペランドの指定を依頼された場合は,保守員の指示に従って指定してください。

《各見積もり式への影響》

pd_dbbuff_trace_levelオペランドの指定値を変更すると,次の見積もり式に影響があります。

マニュアル「HiRDB システム導入・設計ガイド」:

  • 「HiRDB/シングルサーバのメモリ所要量の見積もり」の「メモリ所要量の計算式」

  • 「HiRDB/パラレルサーバのメモリ所要量の見積もり」の「メモリ所要量の計算式」

  • 「シングルサーバが使用する共用メモリの計算式」の「計算式5」

  • 「ディクショナリサーバが使用する共用メモリの計算式」の「計算式4」

  • 「バックエンドサーバが使用する共用メモリの計算式」の「計算式5」

◆ pdbuffer -a グローバルバッファ名

   {-r RDエリア名〔,RDエリア名〕…|

    -b RDエリア名〔,RDエリア名〕…|

    -o|

    -i 認可識別子.インデクス識別子 }

    -n バッファ面数〔-l バッファサイズ〕

   〔-m 同時実行最大プリフェッチ数〕

   〔-p 一括入力最大ページ数〕

   〔-w デファードライトトリガ時の更新ページ出力比率〕

   〔-c〕

   〔-y デファードライトトリガ契機の更新バッファ面数〕

グローバルバッファをどのRDエリアに割り当てるかを定義します。グローバルバッファとは,RDエリアへ表のデータを入出力するときにデータを確保する領域のことであり,共用メモリ上に確保されます。

すべてのRDエリアにグローバルバッファを割り当ててください。グローバルバッファを割り当てないRDエリアに対しては,SQL文及びpdopenコマンドを実行できません。グローバルバッファの設計方法については,マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

《オペランドの規則》

pdbufferオペランドは2,000,000個まで指定できます。HiRDB/パラレルサーバの場合は1サーバ当たり2,000,000個までになります。ただし,全体で2,147,483,647個が上限になります。

《指定値のチューニング方法》

グローバルバッファのチューニング方法については,マニュアル「HiRDB システム運用ガイド」を参照してください。

《オペランドの省略値》

pdbufferオペランドを省略すると,次に示す条件でグローバルバッファを割り当てます。

  • グローバルバッファ名:gbuf00

  • グローバルバッファの種別:-oオプション指定相当

  • グローバルバッファサイズ:6メガバイト

  • バッファ面数:6メガバイト÷RDエリアのページ長の最大値

《注意事項》

pdbufferオペランドに指定する以下の値について,名称を重複指定してHiRDBを起動した場合,KFPH23002-Eメッセージを出力してHiRDBの起動処理が失敗します。

  • グローバルバッファ名

  • RDエリア名

  • インデクス識別子

なお,pdconfchkコマンドではオペランドの文法チェックはしますが,名称の重複指定に関してはチェックしません。

-a グローバルバッファ名

〜<識別子>((1〜16文字))

グローバルバッファの名称を指定します。同じ名称は指定できません。

-r RDエリア名〔,RDエリア名〕…

〜<識別子>((1〜30文字))

グローバルバッファを割り当てるRDエリアの名称を指定します。次に示すRDエリアの名称を指定してください。

  • マスタディレクトリ用RDエリア

  • データディクショナリ用RDエリア

  • データディレクトリ用RDエリア

  • ユーザ用RDエリア

  • データディクショナリLOB用RDエリア

  • ユーザLOB用RDエリア

  • レジストリ用RDエリア

  • レジストリLOB用RDエリア

  • リスト用RDエリア

注※

これらのLOB用RDエリアは,-bオプションのLOB用グローバルバッファも割り当てることをお勧めします(-rオプションと-bオプションの両方を指定します)。LOB用グローバルバッファを割り当てると性能が向上します。

《指定値の目安》

ページ長が同じか,又はページ長が近いRDエリアを同じグローバルバッファに割り当てると,入出力回数を削減できます。ただし,同じページ長のRDエリアでも,次に示すようなRDエリアは別々のグローバルバッファに割り当てた方が入出力回数を削減できます。

  • 用途の異なる表を格納するRDエリア

  • ランダムアクセスが多いRDエリアと順次アクセスが多いRDエリア

《オペランドの規則》

  • RDエリア名に半角英数字以外の文字を含む場合は引用符(")で囲んでください。

  • RDエリア名を引用符(")で囲んだ場合は英字の大文字と小文字が区別されますが,引用符で囲まない場合はすべて大文字として扱われます。

  • 一つのグローバルバッファには最大4096個のRDエリアを定義できます。

-b RDエリア名〔,RDエリア名〕…

〜<識別子>((1〜30文字))

LOB用グローバルバッファを割り当てるRDエリアの名称を指定します。次に示すRDエリアの名称を指定してください。

  • データディクショナリLOB用RDエリア

  • ユーザLOB用RDエリア

  • レジストリLOB用RDエリア

ここで指定したLOB用RDエリアは,-rオプションでも指定しておく必要があります。-bオプションの指定だけではLOB用RDエリアをアクセスできません。指定例を次に示します。

(例)

LOB用RDエリア(RDLOB01)に-r及び-bオプションのグローバルバッファを割り当てます。

    pdbuffer -a gbuf01 -r RDLOB01 -n 1000
    pdbuffer -a gbuf02 -b RDLOB01 -n 1000

備考

  • LOB用RDエリアにはディレクトリ部とデータ部があります。ディレクトリ部とデータ部はそれぞれ異なるグローバルバッファで管理しています。-r指定のグローバルバッファにはディレクトリ部がキャッシュされ,-b指定のグローバルバッファにはデータ部がキャッシュされます。このため,-r(又は-o)及び-bオプションを同時に指定する必要があります。

  • -r指定のグローバルバッファと-b指定のグローバルバッファは異なる用途のグローバルバッファのため,別々に見積もる必要があります。-r指定のグローバルバッファはディレクトリ部分だけをキャッシュするため,比較的小さくてもよいです。-b指定のグローバルバッファはLOBのデータ部をキャッシュするため,使用可能なメモリ容量及びヒット率を考慮して見積もってください。グローバルバッファの見積もり方法については,マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

《指定値の目安》

次に示すようなLOB用RDエリアを指定します。

  • プラグインインデクスを格納するLOB用RDエリア

  • データ量が少なく,アクセス頻度が高いデータを格納するLOB用RDエリア

なお,一つのLOB用グローバルバッファには一つのLOB用RDエリアを割り当てることをお勧めします。

《オペランドの規則》

  • RDエリア名称が半角英数字以外の文字を含む場合は,引用符(")で囲んでください。

  • RDエリア名を引用符(")で囲んだ場合は英字の大文字と小文字が区別されますが,引用符で囲まない場合はすべて大文字として扱われます。

  • 一つのグローバルバッファには,最大4096個のLOB用RDエリアを定義できます。

《注意事項》

LOB用グローバルバッファは,プリフェッチ機能及びデファードライトトリガ機能を使用しません。したがって,-m,-p,及び-wオプションを指定する必要はありません。

-o

-rオプションで指定していないすべてのRDエリアに,グローバルバッファを割り当てる場合に指定します。-oオプションは1回だけ指定できます。2回以上指定した場合は最初の指定を有効とします。

-i 認可識別子.インデクス識別子

認可識別子:〜<識別子>((1〜30文字))

インデクス識別子:〜<識別子>((1〜30文字))

インデクス用グローバルバッファを割り当てるインデクスの名称(認可識別子.インデクス識別子)を指定します。

《指定値の目安》

使用頻度の高いインデクスを指定してください。使用頻度の高いインデクスにグローバルバッファを割り当てると,インデクスページのメモリ常駐度が上がり,入出力回数の削減効果が出ます。

特に,クラスタキー又はユニークキーに定義したインデクスをグローバルバッファに割り当てると効果が大きくなります。なお,クラスタキーのインデクス識別子はHiRDBが決めるため,表を定義した後にディクショナリ表(SQL_INDEXES表のINDEX_NAME列)を検索してインデクス識別子を確認してください。

また,すべてのインデクスをインデクス用のグローバルバッファに割り当てると,グローバルバッファ全体の使用効率が悪くなります。したがって,メモリ量に応じてグローバルバッファに割り当てるインデクスを厳選してください。

《オペランドの規則》

  • 「認可識別子.インデクス識別子」は,同じ名称で複数指定できません。

  • 認可識別子又はインデクス識別子に半角英数字以外の文字を含む場合は,認可識別子及びインデクス識別子をそれぞれ引用符(")で囲んでください。

  • 認可識別子及びインデクス識別子をそれぞれ引用符(")で囲んだ場合は,英字の大文字と小文字が区別されますが,引用符で囲まない場合は,すべて大文字として扱われます。

《注意事項》

  • -iオプションに指定したインデクスを格納しているRDエリアにもグローバルバッファを割り当てる必要があります。-rオプションでRDエリアを指定するか,又は-oオプションでグローバルバッファを割り当ててください。

    RDエリアには,ディレクトリ部(ディレクトリページ),データ部(表データのページ),及びインデクス部(インデクスページ)が格納されています。インデクス用グローバルバッファにはインデクス部だけがキャッシュされるため,ディレクトリ部とデータ部をキャッシュするための-r又は-o指定のグローバルバッファが必要になります。

  • DROP TABLE又はDROP INDEXを実行した場合,削除したインデクスに割り当てていたインデクス用グローバルバッファは使用されなくなります。また,削除したインデクスと同じ名称のインデクスを定義しても,そのインデクス用グローバルバッファは使用できません。そのインデクス用グローバルバッファを使用するには,HiRDBを一度正常終了して再度開始する必要があります。

  • HiRDBの開始時に存在しないインデクスを-iオプションに指定した場合,そのインデクス用グローバルバッファは割り当てられません。このとき,KFPH23014-Wメッセージが出力されます。

    また,HiRDBの開始後,-iオプションに指定したインデクスを定義しても,インデクス用グローバルバッファは使用できません。インデクス用グローバルバッファを使用するには,HiRDBを一度正常終了して再度開始する必要があります。

  • 一時インデクスに割り当てたインデクス用グローバルバッファは,HiRDB開始時に無効になります。このとき,KFPH23014-Wメッセージが出力されます。

  • インデクス用グローバルバッファのバッファサイズより大きなページ長のインデクス格納RDエリアをALTER TABLEで追加した場合,追加したRDエリアのインデクスページはインデクス用グローバルバッファにキャッシュされません。インデクス用グローバルバッファにキャッシュするには,HiRDBを一度正常終了して再度開始する必要があります。

  • データベース構成変更ユティリティのRDエリアの再初期化で,RDエリアのページ長をインデクス用グローバルバッファのバッファサイズより大きくした場合,再初期化したRDエリアのインデクスページはインデクス用グローバルバッファにキャッシュされません。インデクス用グローバルバッファにキャッシュするには,HiRDBを一度正常終了して再度開始する必要があります。

-n バッファ面数

〜<符号なし整数>

  • 32ビットモードの場合:((4〜460000))

  • 64ビットモードの場合:((4〜1073741824))

グローバルバッファの面数を指定します。このオプションは必ず指定してください。

《指定値の目安》

  • シンクポイント取得のタイミング,及びグローバルバッファ内の更新ページの比率によっては,データベースへの出力が集中します。そのため,入出力回数のバランスも考慮する必要があります。

  • グローバルバッファの面数は,次の表から求めてください。

    条件

    グローバルバッファ面数の求め方

    -r又は-oオプション指定のグローバルバッファの場合※1

    HiRDB/シングルサーバの場合

    同時に発生するSQL処理要求の数×1SQLで使用するページ数(3〜6程度)

    HiRDB/パラレルサーバの場合

    同時実行ユーザ数×1トランザクション内の平均同時アクセス表数×3×n※2

    -bオプション指定のグローバルバッファの場合

    LOB用RDエリアの総ページ数×常駐度※3(%)

    -iオプション指定のグローバルバッファの場合※1

    インデクスの格納ページ数×常駐度※4(%)

注※1

最低限必要なバッファ面数は次のとおりです。バッファ面数にはこの値以上を指定するようにしてください。この値より小さい値を指定した場合はバッファ不足によるSQLエラーが発生することがあります。

  • HiRDB/シングルサーバの場合

    同時に発生するSQL処理要求の数×4

  • HiRDB/パラレルサーバの場合

    同時実行ユーザ数×1トランザクション内の平均同時アクセス表数×4

注※2

n=1として見積もったバッファ面数では,バッファのヒット率を高くできません。このため,係数としてどれくらいの余裕をバッファに持たせるか(バッファのヒット率をどのくらいにするか)を検討して指定してください。

注※3

常駐度は1(100%)が望ましいが,メモリ容量,データのアクセス頻度などを考慮して設定します。ユーザLOB用RDエリアの総ページ数,及びレジストリ用RDエリアの総ページ数については,マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

注※4

常駐度は1(100%)が望ましいが,メモリ容量,インデクスの重要度などを考慮して設定します。インデクスの格納ページ数については,マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

《指定値のチューニング方法》

バッファのヒット率がHiRDB稼働業務で80%以上となるように設定してください。バッファのヒット率は次に示す方法で確認できます。

  • 統計解析ユティリティ(グローバルバッファに関する統計情報)の「更新バッファヒット率」及び「参照バッファヒット率」で確認できます。

  • pdbuflsコマンドのヘッダ名HITで確認できます。

《注意事項》

  • グローバルバッファは,正しく見積った値を指定してください。必要以上に大きな値を指定すると,次の現象が発生するおそれがあります。

    a. 共用メモリ確保失敗に伴う起動失敗,又はユニットダウン

    b. メモリ圧迫によるページング多発に伴う性能低下

    c. バッファサーチのためのオーバヘッド増加に伴う性能低下

  • 同一のグローバルバッファにアクセスするユーザ数が増加し,バッファ面数が不足した場合は,SQLエラーが発生することがあります。

-l バッファサイズ

〜<符号なし整数>((4〜30の偶数))(単位:キロバイト)

グローバルバッファのバッファ1面のサイズをキロバイト単位で指定します。このオプションは-nオプションと一緒に指定します。

《指定値の目安》

通常,このオプションは省略してください。このオプションを省略すると,このグローバルバッファに割り当てたRDエリアの最大ページ長がバッファサイズになります。なお,HiRDB/パラレルサーバの場合はサーバ内のRDエリアの最大ページ長がバッファサイズになるため,サーバごとにバッファサイズが異なることがあります。

また,次に示す場合は指定値の変更を考えてください。

  • 将来,このオプションで指定した値を超えるページ長のRDエリアを追加したり,再初期化してRDエリアのページ長を大きくしたりすることがある場合,このオプションの指定値を大きめに設定しておくことをお勧めします。ただし,HiRDBを一度終了できる場合,HiRDBの次回開始時にはバッファサイズに最大ページ長が仮定されるため,このオプションの指定値を大きめに設定しておく必要はありません。

《オペランドの規則》

  • このオプションの指定値がRDエリアの最大ページ長より小さい場合は,RDエリアの最大ページ長がバッファサイズになります。

  • このオプションに奇数を指定した場合,バッファサイズは指定した値に1を加算した値になります。

《注意事項》

このオプションの値を変更しても,HiRDBを正常開始しないと,その値が反映されません。HiRDBを再開始した場合は,前回稼働時(変更前)のバッファサイズとなります。

-m 同時実行最大プリフェッチ数

〜<符号なし整数>((0〜95000))《0》

同時にプリフェッチ機能を使用する最大数を指定します。プリフェッチ機能は,キャラクタ型スペシャルファイルを使用して大量検索をする場合に入出力時間を削減する効果があります。

このオプションに0を指定するか,又は省略した場合は,プリフェッチ機能は動作しません。プリフェッチ機能を動作させるには,1以上を指定してください。

《指定値の目安》

指定値の設定は,このグローバルバッファに割り当てられたRDエリアの表の中で,プリフェッチ機能が適用されるSQL文又はユティリティを同時に実行する回数を指定します。プリフェッチ機能は次に示すSQL文又はユティリティの場合にページを一括して入力します。

  1. インデクスを使用しないSELECT,UPDATE,DELETE文の場合にデータページを一括して入力します。

  2. インデクスを使用した昇順検索をするSELECT,UPDATE,DELETE文(=条件,IN条件を除く)の場合にインデクスリーフページを一括して入力します。

  3. クラスタキーを使用した昇順検索をするSELECT,UPDATE,DELETE文(=条件,IN条件を除く)の場合にインデクスリーフページ及びデータページを一括して入力します。

  4. ローカルバッファを使用しないデータベース再編成ユティリティ(pdrorg)のアンロードの場合にインデクスリーフページ及びデータページを一括して入力します。

注※ 複数列インデクスの場合はインデクス定義で指定した順序

《注意事項》

プリフェッチ機能を使用する場合,グローバルバッファ用の共用メモリからグローバルバッファとは別に一括入力専用のバッファが確保されるため,再度共用メモリを見積もる必要があります。

また,グローバルバッファに割り当てられたRDエリアの表の中で,プリフェッチ機能を適用したSQL文及びユティリティを同時に実行する場合,実行する回数が指定値を超えたSQL文及びユティリティについてはプリフェッチ機能が適用されません。

プリフェッチ機能,及びグローバルバッファが使用する共用メモリの計算式については,マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

-p 一括入力最大ページ数

〜<符号なし整数>((2〜256))《32》

プリフェッチ機能の一括入力最大ページ数を指定します。この指定は,-mオプションで1以上を指定したときだけ有効になります。

《指定値の目安》

共用メモリ量と削減効果のコストパフォーマンスから,指定の目安として次に示す計算式を満足するように指定します。

a×b=64〜128  (単位:キロバイト)

a:プリフェッチ対象表のデータ,又はインデクスが格納されているRDエリアのページ長

b:一括入力最大ページ数

-w デファードライトトリガ時の更新ページ出力比率

〜<符号なし整数>((0〜100))《20》(単位:%)

デファードライトトリガでの更新ページ出力比率をパーセントで指定します。デファードライトトリガについては,マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

このオプションに0を指定した場合は,デファードライトトリガでの更新ページ出力をしません。

《指定値の目安》

  • グローバルバッファごとの入出力回数,及び更新ページのヒット率などを統計解析ユティリティで確認し,指定値を決めてください。更新ページのヒット率が高いグローバルバッファでは出力比率を低く,ヒット率の低いグローバルバッファでは出力比率を高く指定してください。

  • 必要以上に大きい値を指定すると,更新の頻度が多い場合,入出力が多発します。また,遅延書き込み時にデータベースに書き込むページ数が増え,スループットが低下します。反対に,必要以上に少ない値を指定すると,シンクポイントダンプ出力時にデータベースに書き出すページ数が多くなることがあります。このため,できるだけ,シンクポイントダンプ出力間隔の間に同じページがデータベースに書き出される回数が少なくなるようにしてください。

  • すべてのページがグローバルバッファ上にあり,複数トランザクションで同一ページの更新が多く発生する場合は0を指定してください。0を指定すると,シンクポイント間隔内でデータベースに書き出される総ページ数を減らせます。

-c

このオプションはスタンバイレス型系切り替え機能に関するオプションです。この機能を使用しない場合にはこのオプションを指定しないでください。

  • 1:1スタンバイレス型系切り替え機能の場合

    正規BESのRDエリア又はインデクスが使用するグローバルバッファを,切り替え先の代替BES側にも作成する場合にこのオプションを指定します。このオプションを省略した場合,代替BES側にはグローバルバッファは作成されないため,代替中は代替BESに定義している-oオプション指定のグローバルバッファを使用します。

    なお,-c及び-oオプションの両方を省略した場合は代替BESユニットを開始できません。

    このオプションの指定によって代替中のグローバルバッファの割り当て方式が決まります。代替中のグローバルバッファの割り当て方式については,マニュアル「HiRDB システム運用ガイド」の「グローバルバッファの定義(1:1スタンバイレス型系切り替え機能限定)」を参照してください。

  • 影響分散スタンバイレス型系切り替え機能の場合

    影響分散スタンバイレス型系切り替えの対象となるバックエンドサーバに配置されているRDエリア又はインデクスのグローバルバッファを定義する場合はこのオプションを指定します。ここで定義したグローバルバッファは同じHAグループ内の全ユニットに作成されます。

    なお,-cオプションを省略した場合,このグローバルバッファが割り当てられないため,このグローバルバッファを使用するRDエリアにアクセスできません。

    このオプションの指定によって影響分散スタンバイレス型系切り替え機能の対象となるバックエンドサーバのRDエリア,又はインデクスに対するグローバルバッファの割り当て方式が決まります。影響分散スタンバイレス型系切り替え機能使用時のグローバルバッファの割り当て方式については,マニュアル「HiRDB システム運用ガイド」を参照してください。

-y デファードライトトリガ契機の更新バッファ面数

〜<符号なし整数>((2〜2147483647))

デファードライトトリガのトリガ契機を更新バッファ面数で指定します。更新バッファ面数が指定値に達すると,更新ページをディスクに書き込みます。グローバルバッファごとにデファードライトトリガのトリガ契機を設定したい場合に,このオプションを指定してください。

《指定値の目安》

通常はこのオプションを省略してください。デファードライトの書き込み処理がシンクポイントダンプ取得間隔時間内で終了しない場合など,更新バッファ数を減らし,更新バッファヒット率を多少抑えてでも書き込み時間を短縮したいときにこのオプションを指定します。指定する場合は,50%(HiRDBが設定する初期値)を目安にし,マニュアル「HiRDB システム運用ガイド」の「デファードライト処理適用時のシンクポイント処理時間のチューニング」を参照してオペランドの値を決定してください。

《オペランドの規則》

このオプションにグローバルバッファ面数より大きい値を指定した場合は,グローバルバッファ面数と同じ値が適用されます。

《注意事項》

このオプションの指定値が小さ過ぎると,デファードライト処理の回数が増え,デファードライト処理による負荷を高めるため,指定値の目安に従った設定をお勧めします。

《ほかのオペランドとの関連》

このオペランドは,pd_dbbuff_rate_updpageオペランドと次に示す関係があります。

  • pd_dbbuff_rate_updpageオペランドの指定値は全グローバルバッファに適用されます。

  • pdbufferオペランドの-yオプションの指定値はグローバルバッファごとに適用されます。

  • pdbufferオペランドの-yオプションの指定値が優先されます。

  • pdbufferオペランドの-yオプションを指定しない場合,デファードライトトリガ契機の更新バッファ面数は,pd_dbbuff_rate_updpageオペランドの指定によって次のように異なります。

    pd_dbbuff_rate_updpageオペランドの指定

    デファードライトトリガ契機の更新バッファ面数

    あり

    グローバルバッファ面数×pd_dbbuff_rate_updpageオペランドの指定値

    なし

    HiRDBが自動計算します。

《各見積もり式への影響》

pdbufferオペランドの指定値を変更すると,次の見積もり式に影響があります。

マニュアル「HiRDB システム導入・設計ガイド」:

  • 「HiRDB/シングルサーバのメモリ所要量の見積もり」の「グローバルバッファが使用する共用メモリの計算式」

  • 「HiRDB/シングルサーバのメモリ所要量の見積もり」の「メモリ所要量の計算式」

  • 「HiRDB/パラレルサーバのメモリ所要量の見積もり」の「グローバルバッファが使用する共用メモリの計算式」

  • 「HiRDB/パラレルサーバのメモリ所要量の見積もり」の「メモリ所要量の計算式」

  • 「HP-UXのオペレーティングシステムパラメタの見積もり」

  • 「ステータスファイルの容量の見積もり」の「Sの求め方」

  • 「グローバルバッファが使用する共用メモリの計算式」

  • 「シングルサーバが使用する共用メモリの計算式」の「計算式1」,「計算式4」,「計算式5」,「計算式6」

  • 「ディクショナリサーバが使用する共用メモリの計算式」の「計算式2」,「計算式3」,「計算式4」,「計算式5」

  • 「バックエンドサーバが使用する共用メモリの計算式」の「計算式2」,「計算式4」,「計算式5」,「計算式6」

  • 「メッセージキュー及びセマフォ所要量の見積もり」

  • 「リソース数に関連する環境変数の見積もり」の「HiRDB/シングルサーバの場合」

  • 「リソース数に関連する環境変数の見積もり」の「HiRDB/パラレルサーバの場合」

◆ pd_max_add_dbbuff_no = 動的追加用グローバルバッファ数の上限値

〜<符号なし整数>((1〜32752))

グローバルバッファの動的変更をする場合にこのオペランドを指定します。

このオペランドには,pdbufmodコマンドで動的追加するグローバルバッファ数(1サーバ当たり)の上限値を指定します。

《前提条件》

pd_dbbuff_modifyオペランドにYを指定している必要があります。

《指定値の目安》
  • pdbufmodコマンドで動的追加するグローバルバッファ数を予測し,その数に余裕を持たせた値を指定してください。

  • 次に示す条件式を満たすようにこのオペランドの値を決定してください。

    pd_max_add_dbbuff_noの値≦2000000−HiRDB開始時に各サーバに割り当てられているグローバルバッファ数

《オペランドの省略値》

このオペランドの省略値を次に示します。

条件

省略値

32ビットモードの場合

a≧500の場合

256

a<500の場合

500−a

64ビットモードの場合

a≧1000の場合

256

a<1000の場合

1000−a

a:HiRDB開始時に各サーバに割り当てられているグローバルバッファ数

《注意事項》

このオペランドには,必要以上に大きな値を指定しないでください。このオペランドの指定値を大きくすると,HiRDBが使用する共用メモリが増加します。これによって,共用メモリが不足しHiRDBを開始できないことがあります。

《ほかのオペランドとの関連》

このオペランドは次のオペランドと関連があります。

  • SHMMAX

  • pdbuffer

  • pd_max_add_dbbuff_shm_no

《各見積もり式への影響》

pd_max_add_dbbuff_noオペランドの指定値を変更すると,次の見積もり式に影響があります。

マニュアル「HiRDB システム導入・設計ガイド」:

  • 「ステータスファイルの容量の見積もり」の「Sの求め方」

  • 「シングルサーバが使用する共用メモリの計算式」の,「計算式2」,「計算式4」,「計算式5」,「計算式6」

  • 「ディクショナリサーバが使用する共用メモリの計算式」の「計算式2」,「計算式3」,「計算式4」,「計算式5」

  • 「バックエンドサーバが使用する共用メモリの計算式」の「計算式2」,「計算式4」,「計算式5」,「計算式6」

◆ pd_max_add_dbbuff_shm_no = 動的追加用共用メモリセグメント数の上限値

〜<符号なし整数>((1〜32752))

グローバルバッファの動的変更をする場合にこのオペランドを指定します。

このオペランドには,pdbufmodコマンドで動的追加したときに割り当てられる,共用メモリセグメント数(1サーバ当たり)の上限値を指定します。

《前提条件》

pd_dbbuff_modifyオペランドにYを指定している必要があります。

《指定値の目安》

pdbufmodコマンドで動的追加するグローバルバッファ数を予測し,値を指定してください。

《オペランドの省略値》

このオペランドの省略値を次に示します。

条件

省略値

pd_max_add_dbbuff_noオペランドを省略した場合

32ビットモードの場合

500+A

64ビットモードの場合

1000+A

pd_max_add_dbbuff_noオペランドを指定した場合

32ビットモードの場合

↓pd_max_add_dbbuff_noの値×1.5+A↓

(計算値が32752以上だった場合は自動的に32752が設定されます)

64ビットモードの場合

A:HiRDB開始時に確保できる共用メモリセグメント数の余剰分です。次の計算式で値を求められます。

A=512−HiRDB開始時に各サーバに割り当てた共用メモリセグメント数

共用メモリセグメントの情報はpdls -d memコマンド,又はOSのコマンドで確認できます。

《注意事項》
  • 次に示す条件式を満たす場合は,このオペランドにpd_max_add_dbbuff_noオペランドの値が仮定されます。

    pd_max_add_dbbuff_shm_noの値<pd_max_add_dbbuff_noの値

    省略値が上記の条件を満たす場合も,pd_max_add_dbbuff_noオペランドの値が仮定されます。

  • このオペランドには,必要以上に大きな値を指定しないでください。このオペランドの指定値を大きくすると,HiRDBが使用する共用メモリが増加します。これによって,共用メモリが不足しHiRDBを開始できないことがあります。

  • 追加する共用メモリセグメントサイズがSHMMAXオペランドの値を超える場合,SHMMAXオペランドの値を上限値とした複数の共用メモリセグメントに分割されます。追加する共用メモリセグメントサイズを想定してSHMMAXオペランドの値を増やすか,又は分割されたときに不足しないようにpd_max_add_dbbuff_shm_noオペランドの値を増やしてください。

  • グローバルバッファの動的変更機能を適用している場合,グローバルバッファ用共用メモリセグメントとして割り当てられる共用メモリセグメントの総数は次の計算式で求められます。

    512+pd_max_add_dbbuff_shm_no指定値

    そのため,HiRDB開始時に確保した共用メモリセグメント数が512を超えている場合,動的変更時にはpd_max_add_dbbuff_shm_noオペランドの指定値からその超過分を引いた数の共用メモリセグメントが割り当てられることになります。

  • このオペランドの値を変更した場合は,OSパラメタの共用メモリセグメントサイズの上限値,システム上の共用メモリセグメント数の上限値,及び1プロセス当たりの共用メモリセグメント数の上限値を見直してください。

《ほかのオペランドとの関連》

このオペランドは次に示すオペランドと関連があります。

  • SHMMAX

  • pdbuffer

  • pd_max_add_dbbuff_no

《各見積もり式への影響》

pd_max_add_dbbuff_shm_noオペランドの指定値を変更すると,次の見積もり式に影響があります。

マニュアル「HiRDB システム導入・設計ガイド」:

  • 「HiRDB/シングルサーバのメモリ所要量の見積もり」の「ユニットコントローラが使用する共用メモリの計算式」

  • 「HiRDB/パラレルサーバのメモリ所要量の見積もり」の「ユニットコントローラが使用する共用メモリの計算式」

  • 「HP-UXのオペレーティングシステムパラメタの見積もり」

  • 「Linuxのオペレーティングシステムパラメタの見積もり」

  • 「ステータスファイルの容量の見積もり」の「Sの求め方」

  • 「リソース数に関連する環境変数の見積もり」の「HiRDB/シングルサーバの場合」

  • 「リソース数に関連する環境変数の見積もり」の「HiRDB/パラレルサーバの場合」