DSNB1CPF

DSNB1CPFは、バッファー マネージャー(BM)の動的プリフェッチを処理します。

連続するページにないデータへのアクセスでは、順次プリフェッチよりも動的プリフェッチのほうがパフォーマンスを上げられることがあります。また、動的プリフェッチにより、ページングを減らすこともできます。動的プリフェッチは、Db2がアクセスするページが連続していない場合に使用されるプリフェッチです。順次プリフェッチは、ページが十分に連続している場合に使用されます。

Db2は、バインド時にプリフェッチを選択しなかった場合でも実行時にプリフェッチを使用することがあります。この方法は順次検出と呼ばれます。Db2は、索引リーフ ページとデータ ページの両方に順次検出を使用できます。最もよく使用されるのは、データが順次アクセスされる場合の、ネスト ループ結合の内部表に対してです。1つの表が同じステートメント(たとえばdo-whileループのDELETEなど)を使って繰り返しアクセスされる場合、表のデータまたは索引リーフ ページに順にアクセスすることができます。このような状況で、以下のステートメントでアクセスが行われる場合、順次検出を使用できます。

  • SELECTまたはFETCHステートメント

  • UPDATEおよびDELETEステートメント

  • 既存のデータ ページに順にアクセスする際のINSERTステートメント

ヒント

  • 逆方向索引スキャンで順次検出を利用して、動的プリフェッチで必要に応じて32の索引ページを逆方向に読み取るようにできます。この方法でも、索引ページを1ページずつ同期的に読み取るのと比べて、入出力のパフォーマンスが1桁向上します。

  • INリスト述部で索引アクセスを使用する場合、リスト項目が索引キー列のドメイン内で分散していると、順次プリフェッチを使用する効果はないかもしれません。

  • SELECTまたはUPDATEが繰り返し実行され、各アクセスで索引にアクセスする場合は、通常、動的プリフェッチが使用されます。

参考資料

『Db2 Universal Database for z/OS, Application Programming and SQL Guide(SC18-7415-02)』

『Db2 Information Management Software, Db2 UDB for z/OS Version 8: Everything You Ever Wanted to Know, and More(SG24-6079-00)』(IBM Redbook)

『IBM Db2 Performance Expert for z/OS, Report Reference(SC18-7978-04)』