バッファー・プール

バッファー・プール とは、表および索引のデータがディスクから読み取られるときにそれらをキャッシュに入れるためにデータベース・マネージャーによって割り振られるメイン・メモリーの領域です。 すべての 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 つのエージェントによって排他的にアクセスされています。 ページを読み取る場合は、複数のエージェントが同時に読み取ることができます。
  • 「ダーティー」のページというのは、 変更されているがまだディスクに書き出されていないデータが含まれているページのことです。
  • 変更されたページがディスクに書き出されると、そのページは「クリーン」になり、バッファー・プールに残されたままになることがあります。

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