DB2 10.5 for Linux, UNIX, and Windows

バッファー・プール

バッファー・プール とは、表および索引のデータがディスクから読み取られるときにそれらをキャッシュに入れるためにデータベース・マネージャーによって割り振られるメイン・メモリーの領域です。 すべての DB2® データベースには、バッファー・プールが必要です。

新規データベースごとに、IBMDEFAULTBP というデフォルトのバッファー・プールが定義されます。 追加のバッファー・プールを CREATE BUFFERPOOL、DROP BUFFERPOOL、および ALTER BUFFERPOOL ステートメントを使用して、作成、ドロップ、および変更することができます。 SYSCAT.BUFFERPOOLS カタログ・ビューで、データベース内に定義されたバッファー・プールの情報がアクセスされます。

DB2 pureScale® 環境では、それぞれのメンバーに独自のローカル・バッファー・プール (LBP) があります。ただし、クラスター・キャッシング・ファシリティーで維持される追加のグループ・バッファー・プール (GBP) も存在します。 GBP は、すべてのメンバーによって共有されます。 DB2 pureScale インスタンスのそれぞれのメンバーで使用されるページ・キャッシュとして用いられ、パフォーマンスを向上されると同時に、整合性を確保します。

バッファー・プールが使用される方法

注: 以下で取り上げられているのは、DB2 pureScale 環境以外の環境におけるバッファー・プールについての説明です。DB2 pureScale 環境におけるバッファー・プールの動作は異なります。詳しくは、DB2 pureScale 環境におけるバッファー・プールのモニターを参照してください。

表内のデータの行が最初にアクセスされると、データベース・マネージャーによってそのデータが含まれたページがバッファー・プールに配置されます。 ページは、データベースがシャットダウンされるか、またはページによって占有されたスペースが別のページによって要求されるまで、バッファー・プール内に留まります。

バッファー・プールのページの状況は使用中かそうではないか、およびダーティーかクリーンかで区別されます。
  • 「使用中」のページとは、現在読み取り中または更新中のページのことです。 データの整合性を維持するために、データベース・マネージャーは、バッファー・プール内の特定ページの更新を一度に 1 エージェントにのみ許可します。 特定のページの更新中は、このページは 1 つのエージェントによって排他的にアクセスされています。 ページを読み取る場合は、複数のエージェントが同時に読み取ることができます。
  • 「ダーティー」のページというのは、 変更されているがまだディスクに書き出されていないデータが含まれているページのことです。
  • 変更されたページがディスクに書き出されると、そのページは「クリーン」になり、バッファー・プールに残されたままになることがあります。

データベースの調整の大部分では、バッファー・プールへのデータの移動およびバッファーからディスクへのデータの書き込みを制御する構成パラメーターの設定を行います。 ページが最新のエージェントによって必要とされない場合は、このページ・スペースは新規アプリケーションからの新規ページ要求に使用される可能性があります。 この場合、データベース・マネージャーのパフォーマンスが、余分なディスク入出力によって低下します。