4.13 パフォーマンスを向上するためのメモリーの管理

GeoRasterには、ラスター(LOB)データの読取りおよび書込みを行うための独自のバッファ・システムがあります。このシステムは、Oracle Databaseバッファ・システムと別個になります。次の表に、GeoRasterオブジェクトのすべてのI/O操作に使用するGeoRasterバッファ・システムを構成するために使用できるパラメータを示します。

表4-1 GeoRasterバッファリング・パラメータ

パラメータ名 説明 デフォルト値
MemMaxSize 各GeoRasterオブジェクトのGeoRasterバッファリングに使用できるメモリーの上限サイズ。 17 MB
MemReadBlockSize ラスター・データをキャッシュするための読取り操作の内部データ・ブロック・サイズ。 32 KB
MemWriteBlockSize ラスター・データをキャッシュするための読取り/書込み操作の内部データ・ブロック・サイズ。 64 KB

次のPL/SQLサブプログラムを使用して、これらのパラメータの値を取得および設定できます。

パラメータがPL/SQLを使用して設定されるため、値はデータベース・セッションの期間中に定義されます。後続のセッションで、パラメータにデフォルト以外の値を使用する場合、適切なプロシージャを使用して設定する必要があります。

通常は、パラメータに大きい値を使用すると、GeoRaster I/O操作のパフォーマンスが向上します。特定の考慮事項およびガイドラインは次のとおりです。

  • 追加のメモリーを割り当てると(MemMaxSizeを増やす)、ディスク・アクセスが減少します。理想として、十分に大きいメモリーを割り当ててGeoRasterオブジェクト全体を保持すると、パフォーマンスが大幅に向上します。ただし、Oracle Databaseでは複数のユーザーおよび同時アクセスが可能であるため、そのような環境でのバランスの取れたメモリーの割当てを行う必要があります。

  • 読取りブロック・サイズを増やすと(MemReadBlockSizeを増やす)、OCI LOB読取り操作の数が減少するため、パフォーマンスが向上します。ただし、操作におけるソースおよびターゲットGeoRasterオブジェクト間の異なるインターリーブのために、MemReadBlockSize値でGeoRasterオブジェクト全体を保持できない場合、読取りブロック・サイズが大きすぎて頻繁な読取りブロック・ページインおよびページアウト操作が発生するため、パフォーマンスが低下します。
  • ほとんどすべてのGeoRaster操作は書込み駆動型です。そのため、書込みブロック・サイズを増やすと(MemWriteBlockSizeを増やす)、OCI LOB書込み操作の数が減少し、パフォーマンスが向上します。