表スペース用にデータベース管理記憶域 (DMS) 装置コンテナーを使用している場合は、 環境を効果的に管理できるように、次の点を理解している必要があります。
ファイル・システム・キャッシュは次のように実行されます。
注: | DB2 が NOCACHE オプション付きでデータベース・ファイルをオープンするか否かを指定する。 DB2NTNOCACHE=ON の場合は、ファイル・システムのキャッシュは除去される。 DB2NTNOCACHE=OFF の場合、オペレーティング・システムは DB2 ファイルをキャッシュに保存する。 これは、LONG FIELDS または LOBS を含んでいるファイルを除くすべてのデータに適用される。 システム・キャッシュを除去すると、 より多くのメモリーがデータベースに利用できるようになるため、 バッファー・プールや分類ヒープの量を増やすことができる。 |
ディスクから読み取られる表データは通常、 データベースのバッファー・プールで使用可能です (データベース・バッファー・プールの管理を参照してください)。 アプリケーションが実際にそのページを使用してしまうよりも前に、 データ・ページをバッファー・プールから解放できる場合もあります。 (これが起こるのは、バッファー・プール空間がその他のデータ・ページで必要とされる場合です。) システム管理記憶域 (SMS) またはデータベース管理記憶域 (DMS) ファイル・コンテナーを使用する表スペースについては、 上記のファイル・システム・キャッシュの説明を参照してください。 これにより、キャッシュに入っていなければ必要になった入出力を省くことができます。
データベース管理記憶域 (DMS) を使用している表スペースは、 ファイル・システムもキャッシュも使用しません。 このような場合には、データベース・バッファー・プールのサイズを大きくし、 ファイル・システム・キャッシュのサイズを小さくすることによって、 装置コンテナーを使用する DMS 表スペースでは二重バッファリングは実行されないという事実を相殺することができます。
装置コンテナーを使用する DMS 表スペースの入出力が同等の SMS 表スペースの入出力と比較して大きくなっていることを、 システム・レベルのモニター・ツールの使用を介して検出した場合には、 この差は、上記で説明した二重バッファリングが原因である可能性があります。
アプリケーションが LOB データまたは LONG データのいずれかをリトリーブする場合には、 データベース・マネージャーは、データのキャッシュにはバッファーを使用しません。 アプリケーションがこれらのページの 1 つを要求するたびに、 データベース・マネージャーはディスクからリトリーブしなければなりません。
LOB または LONG データが SMS または DMS ファイル・コンテナーに格納される場合、 ファイル・システム・キャッシュでバッファリングが行われ、 結果としてパフォーマンスが向上することがあります。
システム・カタログにはいくつかの LOB 列が含まれているので、 システム・カタログは SMS (または、DMS ファイル) 表スペースに入れておくことをお勧めします。