Hitachi

ノンストップデータベース HiRDB Version 10 解説


6.8.1 グローバルバッファ

グローバルバッファとは,ディスク上のRDエリアに格納されているデータを入出力するためのバッファのことで,共用メモリ上に確保されます。データを更新するためにバッファ上で更新され,データベースには未反映のバッファを更新バッファといいます。また,データを参照するためのバッファ,及びデータベースに反映済みのバッファを参照バッファといいます。

データを格納するRDエリア又はインデクスには,必ずグローバルバッファを割り当てます。グローバルバッファの種類を次の表に示します。

表6‒9 グローバルバッファの種類

グローバルバッファの種類

説明

データ用グローバルバッファ

データの入出力に使用されるグローバルバッファです。データ用グローバルバッファはRDエリア単位に割り当てます。

インデクス用グローバルバッファ

インデクスデータの入出力に使用されるグローバルバッファです。インデクス用グローバルバッファはインデクス単位に割り当てます。

LOB用グローバルバッファ

LOB属性のデータの入出力に使用されるグローバルバッファです。LOB用グローバルバッファはLOB用RDエリア単位に割り当てます。

これらのグローバルバッファを組み合わせると性能を向上できます。例えば,データ用グローバルバッファとインデクス用グローバルバッファを分けて定義すると,データの検索とインデクスの検索を同時に実行しても互いが独立して動作します。そのため,大量データの全件検索時などでもインデクスの入出力回数を削減でき,処理時間を短縮できます。グローバルバッファの概念を次の図に示します。

図6‒10 グローバルバッファの概念

[図データ]

〈この項の構成〉

(1) グローバルバッファを割り当てる単位

(2) グローバルバッファの割り当て方法

pdbufferオペランドでグローバルバッファを割り当てます。pdbufferオペランドでのグローバルバッファの割り当て例を次に示します。

(例)
pdbuffer -a gbuf01 -r RDAREA01,RDAREA02 -n 1000       1
pdbuffer -a gbuf01 -r LOBAREA01 -n 1000               2
pdbuffer -a gbuf01 -i USER01.INDX01 -n 1000           3
pdbuffer -a gbuf01 -b LOBAREA01 -n 1000               4
〔説明〕
  1. RDエリア(RDAREA01,RDAREA02)にデータ用グローバルバッファを割り当てます。

  2. LOB用RDエリア(LOBAREA01)にデータ用グローバルバッファを割り当てます。

  3. インデクス(USER01.INDX01)にインデクス用グローバルバッファを割り当てます。

  4. LOB用RDエリア(LOBAREA01)にLOB用グローバルバッファを割り当てます。

pdbufferオペランドについては,マニュアル「HiRDB システム定義」を参照してください。

(3) グローバルバッファの動的変更

グローバルバッファを追加,変更,又は削除するにはpdbufferオペランドを変更する必要があるため,HiRDBを一度停止する必要があります。しかし,HiRDB Advanced High Availabilityを導入すると,HiRDBの稼働中にpdbufmodコマンドでグローバルバッファを追加,変更,又は削除できます。これをグローバルバッファの動的変更といいます。例えば,次に示す場合にグローバルバッファを動的変更してください。

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