SQLBLOCKMAXオプションは、Oracle Databaseインスタンスから一度に取得するレコードの最大数を制御します。このオプションによって、データ・フェッチのパフォーマンスをきめ細かくチューニングできます。
パラメータ
一度にフェッチするレコード数を示すINTEGER
。SQLBLOCKMAXは任意のINTEGER
に設定できますが、100以上に設定すると、パフォーマンス上の明らかな変化は見られなくなります。デフォルトは10
レコードです。
使用上の注意
カーソルのオープン
新しいブロック・サイズを使用するカーソルは、SQLBLOCKMAXのリセット後にオープンされたカーソルです。
レコード数
プログラムの通常の操作が、カーソルをオープンして1レコードを読み取ってからクローズする場合、SQLBLOCKMAXを1
に設定します。このように設定しないと、SQL FETCH文は10レコードを取得してそのうちの9レコードを破棄します。同じことが、10レコード未満をフェッチする他のルーチンにも当てはまります。
ブロック・サイズ
プログラムで小さなレコードをフェッチする場合、SQLBLOCKMAXを増やしてフェッチに必要なブロック数を減らすことができます。Oracle OLAPは、データを64KBのバッファにフェッチします。ブロック・サイズは、レコード数にレコードのサイズを掛けたもので、バイトで示します。ブロック・サイズがバッファの制限である64KBを超える場合、Oracle OLAPはフェッチするレコード数を自動的に減らします。例5-98「SQLBLOCKMAXによるカーソルの定義」を参照してください。