Db2 が新しいページを格納するためにバッファプールからページを削除する必要がある場合、この操作はバッファプールからページを盗むと呼ばれます。
このタスクについて
デフォルトでは、 Db2 は、ストレージ内のページ管理に、最近使用されていないものから順に削除する(LRU)アルゴリズムを使用しています。 このアルゴリズムは、最近使用されていないページをバッファー・プールから削除し、最近使用されたページをバッファー・プールに保持します。 しかし、 Db2 はバッファープールをより効率的に管理するために、異なるページ盗用アルゴリズムを使用することができます。
プロシージャー
ページ・スチールのアルゴリズムを指定するには、次のようにします。
- バッファー・プールに対して最も効率的なページ・スチール・アルゴリズムを判別します。
| オプション |
説明 |
| PGSTEAL(LRU) |
ほとんどの場合はこのオプションを使用します。 Db2 は 最長未使用時間 アルゴリズムを使用して、バッファー・プール・ページをスチールに使用できるようにする時期を決定します。
このオプションでは、頻繁に使用されるページがバッファー・プールに保持され、使用されていないページが削除されます。 これにより、確実に最も頻繁にアクセスされるページが常にバッファー・プールに保持されます。
このオプションを使用すると、LRU チェーン保守に追加のコストがかかり、余分のラッチ競合を生じる可能性があります。
|
| PGSTEAL(FIFO) |
Db2 は 先入れ先出し アルゴリズムを使用して、バッファー・プール・ページをスチールに使用できるようにする時期を決定します。このオプションでは、参照頻度に関係なく、バッファー・プール内の最も古いページが削除されます。 このページ・スチール方式では、削除可能なページを判別するコストが削減され、LRU アルゴリズムの結果生じる内部ラッチ競合を軽減します。
このオプションは、入出力がないバッファー・プール (つまり、表スペースや索引項目を常にメモリーに常駐させておく必要があるバッファー・プール) に対して指定してください。
|
| PGSTEAL(NONE) |
Db2 オブジェクトが開かれた際にページをバッファプールにプリロードし、オブジェクトが開かれている間は、オブジェクトのすべてのページをバッファプール内に常駐させようとします。 Db2 バッファプールに収まらないページ用のオーバーフロー領域を暗黙的に作成します。 オーバーフロー域のサイズは、バッファー・プールの VPSIZE 値に基づいています。 通常、オーバーフロー領域は、50~6400バッファの範囲でVPSIZE値の10パーセントです。 ページ・スチールは、オーバーフロー域で行われます。 オーバーフロー領域用にLRUチェーンが維持されますが、オーバーフロー領域でのバッファーステーリングにはFIFOページステーリングアルゴリズムが使用されます。
このオプションは、アクセス頻度の高い、安定した、予測可能なサイズのオブジェクトのバッファー・プールに対してのみ指定します。 以下のリアルタイム統計値を使用して、候補オブジェクトを識別できます。 
- GETPAGES
- NACTIVE
- REORGINSERTS
 このオプションの利点を実現するためには、バッファー・プールがオーバーフロー域と、同時に開く可能性のある全割り当て済みオブジェクトのすべてのページの両方を収容するのに十分な大きさがあることを確認する必要があります。 オーバーフロー域に割り当てられたページは、オブジェクトを閉じるまでは、バッファー・プールのメイン部分に戻すことはできません。
A DSNB604I オーバーフロー領域が使用された際にメッセージが発行されます。
Db2 12 では、PGSTEAL(NONE) と FRAMESIZE( ) は互換性がありません。 2G これらのオプションを一緒に指定すると、 Db2 はメッセージを発行し DSNB549I し、バッファプールの次の割り当てが行われるまで、PGSTEAL(LRU)アルゴリズムを使用します。 ただし、PGSTEAL (NONE) は BSDS に記録されます。 PGSTEAL (NONE) を使用するには、FRAMESIZE (1M) または FRAMESIZE (4K) を指定します。 詳細については、 Db2 12 のストレージ リリースの非互換性の PGSTEAL(NONE) バッファー プールの動作の変更を 参照してください。
|
- ALTER BUFFERPOOL コマンドを発行して PGSTEAL オプションを指定します。