Linux+DB2のパフォーマンスチューニング 6

DB2のメモリ

DB2のメモリ

   DB2が使うメモリの種類として以下のものが存在します。

データベースマネージャー共用メモリ
1インスタンス内で共用されるメモリ。
 
データベースグローバル・メモリ
1データベース内で共用されるメモリ。これはパフォーマンスに非常に重要な影響を与えます。DB2のI/O キャッシュに相当するバッファプールなどがこれに相当します。なお、データベースをまたがって共用することはできません。このメモリの最大数は、データ ベースマネージャー構成パラメータの「numdb」の値です。
 
アプリケーション・グローバル・メモリ
1つのデータベースに接続している複数のアプリケーションで共用するメモリ。このメモリの最大数は、データベース構成パラメータの「maxappls」の値です。
 
エージェント専用メモリ
1つの接続ごとにDB2エージェント・プロセスが割り当てられ、SQLの処理を行いますが、そのエージェント・プロセスの専用メモリ(プライベート・メモリ)がこれです。ここにも、パフォーマンス上重要なメモリが存在します。
表2:DB2のメモリの種類

DB2の設定情報

   DB2の設定情報として以下の3種類のものがあります。


  • データベースマネージャー構成パラメータ
  • データベース構成パラメータ
  • DB2レジストリ変数
表4:DB2の設定情報

   またチューニングを実施する上では、オブジェクトの定義をよく参照します。


  • 表、インデックス
  • 表スペース
  • バッファプール
表5:よく参照するDB2のオブジェクト定義

   さらに、「表」「インデックスの統計情報」をあわせて確認して、SQLのアクセスプランの確認を行う場合があります。

データベースマネージャー構成パラメータ

   データベースマネージャー構成パラメータは、インスタンスレベルの構成を定義しています。その際に使用するDB2のメモリとしては、データベースマネージャー共用メモリになります。

   このパラメータを取得するコマンドを下記に示します。

db2 attach to
db2 get dbm cfg show detail
db2 detach

   DB2では自動設定となっているパラメータがあり、その設定値を確認するためには、「show detail」オプションをつける必要があります。なお、「show detail」オプションを実行するためには、インスタンスにアタッチしてからコマンドを実行する必要があります。

   下記に標準結果を出力した例を示します。



(画像をクリックすると別ウィンドウに拡大表示します)

遅延値とは、このあとインスタンスを再起動したときに設定される値です。パラメータを変更したものの、即時には反映されないものは、その設定値をこの遅延値で確認できます。

   なおDB2のマニュアルでは、これらのパラメータが与えるパフォーマンスへの影響について記載されています(高/中/低/なし、あるいはHigh/Medium/Low/None)。詳しくは以下を参照ください。


   上記の出力結果の中から、パフォーマンスへの影響が高(あるいはHigh)ものを以下に示します。



(画像をクリックすると別ウィンドウに拡大表示します)
 

   次項よりこれらパラメータについて詳しく解説します。

この記事をシェアしてください

人気記事トップ10

人気記事ランキングをもっと見る