dbheap - データベース・ヒープ構成パラメーター

このパラメーターを使用すると、データベース・ヒープ用に割り振られるメモリーの最大量を制限できます。 重大なメモリー要件用に、追加のメモリーが自動的に加えられます。
デフォルトでは、dbheapAUTOMATIC に設定され、この場合は必要に応じてデータベース・ヒープのサイズを大きくすることができます。 この大きくする処理は、database_memoryinstance_memory、およびシステム・メモリーの制限に従属します。
構成タイプ
データベース
パラメーター・タイプ
オンラインで構成可能 (データベース接続が必要)
Db2® pureScale® 環境またはパーティション・データベース環境のメンバーによって構成可能
伝搬クラス
即時
デフォルト [範囲]
Linux および UNIX オペレーティング・システムの場合
AUTOMATIC [AUTOMATIC32 - 2 147 483 647]
  • デフォルト値は AUTOMATIC、基礎となる値は 1200 です。
Windows オペレーティング・システムの場合
AUTOMATIC [AUTOMATIC32 - 2 147 483 647]
  • 32 ビット・アーキテクチャーの場合、スタンドアロン・サーバーのデフォルト値は AUTOMATIC、基礎となる値は 300 です。
  • 64 ビット・アーキテクチャーの場合、デフォルト値は AUTOMATIC、基礎となる値は 600 です。
注: デフォルト値は、初期データベース作成後に Db2 構成アドバイザーによって変更される場合があります。
単位
ページ (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 パラメーターでユーザーが構成した値を超過しても、それは正常なことです。

MON_GET_MEMORY_POOL 表関数を使用して、データベース・ヒープの使用量をモニターできます。 例えば、次のような照会は、
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 コマンドを使用して、データベース・ヒープの使用量をモニターすることもできます。