DB2のメモリ
DB2のメモリ
DB2が使うメモリの種類として以下のものが存在します。
- データベースマネージャー共用メモリ
- 1インスタンス内で共用されるメモリ。
- データベースグローバル・メモリ
- 1データベース内で共用されるメモリ。これはパフォーマンスに非常に重要な影響を与えます。DB2のI/O キャッシュに相当するバッファプールなどがこれに相当します。なお、データベースをまたがって共用することはできません。このメモリの最大数は、データ ベースマネージャー構成パラメータの「numdb」の値です。
- アプリケーション・グローバル・メモリ
- 1つのデータベースに接続している複数のアプリケーションで共用するメモリ。このメモリの最大数は、データベース構成パラメータの「maxappls」の値です。
- エージェント専用メモリ
- 1つの接続ごとにDB2エージェント・プロセスが割り当てられ、SQLの処理を行いますが、そのエージェント・プロセスの専用メモリ(プライベート・メモリ)がこれです。ここにも、パフォーマンス上重要なメモリが存在します。
DB2の設定情報
DB2の設定情報として以下の3種類のものがあります。
- データベースマネージャー構成パラメータ
- データベース構成パラメータ
- DB2レジストリ変数
またチューニングを実施する上では、オブジェクトの定義をよく参照します。
- 表、インデックス
- 表スペース
- バッファプール
さらに、「表」「インデックスの統計情報」をあわせて確認して、SQLのアクセスプランの確認を行う場合があります。
データベースマネージャー構成パラメータ
データベースマネージャー構成パラメータは、インスタンスレベルの構成を定義しています。その際に使用するDB2のメモリとしては、データベースマネージャー共用メモリになります。
このパラメータを取得するコマンドを下記に示します。
db2 attach to
db2 get dbm cfg show detail
db2 detach
DB2では自動設定となっているパラメータがあり、その設定値を確認するためには、「show detail」オプションをつける必要があります。なお、「show detail」オプションを実行するためには、インスタンスにアタッチしてからコマンドを実行する必要があります。
下記に標準結果を出力した例を示します。
なおDB2のマニュアルでは、これらのパラメータが与えるパフォーマンスへの影響について記載されています(高/中/低/なし、あるいはHigh/Medium/Low/None)。詳しくは以下を参照ください。
http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp?
topic=/com.ibm.db2.udb.doc/admin/r0005181.htm
上記の出力結果の中から、パフォーマンスへの影響が高(あるいはHigh)ものを以下に示します。
次項よりこれらパラメータについて詳しく解説します。

