dbheap - データベース・ヒープ構成パラメーター
- 構成タイプ
- データベース
- パラメーター・タイプ
- オンラインで構成可能 (データベース接続が必要)
- 伝搬クラス
- 即時
- デフォルト [範囲]
- Linux および UNIX オペレーティング・システムの場合
- AUTOMATIC [AUTOMATIC、 32 - 2 147 483 647]
- デフォルト値は AUTOMATIC、基礎となる値は 1200 です。
- Windows オペレーティング・システムの場合
- AUTOMATIC [AUTOMATIC、 32 - 2 147 483 647]
- 32 ビット・アーキテクチャーの場合、スタンドアロン・サーバーのデフォルト値は AUTOMATIC、基礎となる値は 300 です。
- 64 ビット・アーキテクチャーの場合、デフォルト値は AUTOMATIC、基礎となる値は 600 です。
- 単位
- ページ (4 KB)
- 割り振られるタイミング
- dbheap の基礎となる値または固定値と、重大な要件用の内部メモリー割り当て量は、データベースを活動化する際にデータベース・メモリーから予約されます。 データベース・ヒープは必要に応じて割り振られます。
- 解放されるタイミング
- 必要なくなった時点でメモリー割り振りが解放されます。 データベース・ヒープ内のすべての割り振り済みメモリーは、データベースを非活動化すると解放されます。
データベース・ヒープはデータベースごとに 1 つずつ存在し、データベース全体のアクティビティーのサポートにとって重大なさまざまな目的で使用されます。 ログ・バッファーなどの、多数の既知の要件は、データベースを活動化する時点で評価されます。 これらの内部要件と、構成済みの dbheap の基礎となる値または固定値は、初期データベース・メモリーのサイズ見積もりに寄与し、データベース・ヒープ用のデータベース・メモリーの予約量の構成要素になります。 内部計算の一部でない追加の要件には表のメタデータ用のキャッシュが含まれ、この場合は表にアクセスするつど累算されます。
初期データベース・ヒープ予約量には、構成された値と内部的に計算された所要量の両方が含まれます。 データベース・ヒープが固定値に設定されている場合、この初期予約量が強制ハード・リミットになります。 dbheap パラメーターがデフォルトの AUTOMATIC 設定のままの場合、データベース・ヒープは初期予約量を上回ることができ、残りのデータベース・メモリー・オーバーフローがある場合はそれらを使用することができます。 加えて、database_memory パラメーターが AUTOMATIC に設定されている場合、 database_memory サイズが自動的に増え、データベース・ヒープがさらに増大する可能性があります。
データベース・ヒープ要件は、データベース設計、アプリケーションのアクティビティー、構成などのさまざまな要因に応じて異なります。 AUTOMATIC の設定は、デフォルト値などの、基礎となる小さな値のままにしておくことをお勧めします。 以前のリリースから Db2 バージョン 9.5 以上にマイグレーションする場合、または Db2 構成アドバイザーから推奨を適用する場合、 dbheap 設定は AUTOMATIC に変更されます。
- サイズが
LOGBUFSZ
のログ・バッファー。データベースを活動化する際に割り振られます。 内部データベース・ヒープ割り当て量の一部になります。 - アクセスされる圧縮表ごとに約 100KB が割り振られます。 表パーティションを使用している場合は、この量は表パーティション当たりになります。 アクセスされる列ベース表ごとに、最大で 100MB が必要です。 これらのメモリー要件は初期データベース・ヒープ・サイズ見積もりには含まれないので、dbheap の固定値に含めなければなりません。 このメタデータは、データベースがアクティブになっている間にキャッシュに入れられます。
AUDIT_BUF_SIZE
をゼロ以外の値に設定すると、指定されたサイズの 2 つのバッファーが、データベースの活動化中に割り振られます。 この量は、内部データベース・ヒープ割り当て量に含まれます。- 2 つの HADR バッファー用の割り当て量が、初期データベース・ヒープ予約量に対して作成されます。 例えば、
DB2_HADR_BUF_SIZE
を 256000 の 4KB ページに設定すると、初期データベース・ヒープ予約量にデータベース・メモリーから約 2GB が追加されます。 この量は内部データベース・ヒープ割り当て量の一部で、この割り当てはフェイルオーバー操作に必要なリソースをサポートするために 1 次データベースとスタンバイ・データベースの両方で行われます。 - 診断ツールをサポートするために、約 100MB が事前に割り振られます。 この量は、内部データベース・ヒープ割り当て量に含まれます。
モニター
構成する dbheap の値は、割り振られるデータベース・ヒープの一部しか表していません。 文書化されているように、重大な要件を考慮して、余分な量がデータベース・ヒープに追加されます。 そのため、データベース・ヒープのメモリー使用量が、dbheap パラメーターでユーザーが構成した値を超過しても、それは正常なことです。
select memory_pool_used, memory_pool_used_hwm
from table (mon_get_memory_pool(null,null,null))
where memory_pool_type='DATABASE'
KB 単位での memory_pool_used 値と memory_pool_used_hwm 値の戻りは以下のとおりです。MEMORY_POOL_USED MEMORY_POOL_USED_HWM
-------------------- --------------------
140574 140574
1 record(s) selected.
db2pd -db <database_name> -mempools コマンドを使用して、データベース・ヒープの使用量をモニターすることもできます。