リザルトバッファは、SELECT文で獲得したデータをアプリケーション側で保持しておく領域です。このバッファは、カーソルならその単位で使われます。たとえば、アプリケーションがカーソルを入れ子で使う場合は、その数だけ作成する方が性能が向上します。カーソルが入れ子になっているが、リザルトバッファが1枚しか作成されていない場合は、外側のカーソルについてはリザルトバッファを使用しますが、入れ子内のカーソルはFETCH文ごとに返却データをSymfoware/RDBから獲得することになります。
リザルトバッファに関連するバッファで、コミュニケーションバッファがあります。コミュニケーションバッファは、アプリケーションをデータベースサーバで実行する場合に存在し、アプリケーションとSymfoware/RDB間で返却データをやり取りするための通信用のバッファ(共用メモリ)です。
SELECT文で得られるデータ量が大量のときは、リザルトバッファ、コミュニケーションバッファを大きくすることによって、アプリケーションとSymfoware/RDB間の通信回数の削減となり、FETCH性能が向上する可能性があります。
カーソル1とカーソル2が入れ子になっている場合は、リザルトバッファは2つ使われます。この場合、コミュニケーションバッファとリザルトバッファの関係が以下となるようにサイズを決めるのが適切です。
コミュニケーションバッファサイズ = リザルトバッファサイズ
リザルトバッファは、クライアント用の動作環境ファイルのRESULT_BUFFERに個数とサイズを指定します。
コミュニケーションバッファは、システム用の動作環境ファイルのCOMMUNICATION_BUFFERにサイズを指定します。
なお、コミュニケーションバッファを大きくした場合、RDB構成パラメタファイルで指定する共用メモリのサイズ(RDBEXTMEM)、および、カーネル編集で設定した共用メモリのサイズも見直す必要があります。
参照
RDB構成パラメタファイルとカーネル編集については、“セットアップガイド”を参照してください。
クライアント用の動作環境ファイル(64キロバイトのバッファが2枚の場合)
RESULT_BUFFER=(2,64)
システム用の動作環境ファイル(バッファサイズは64キロバイト)
COMMUNICATION_BUFFER=(64)
注意
リザルトバッファの大きさは、返却データ長や返却レコード件数に依存します。リザルトバッファを大きくするとFETCH性能は向上しますが、使用メモリ量を圧迫するため、性能が頭打ちになったり下がることもあります。このため、リザルトバッファのチューニングを行う場合は、運用テストを行ってからサイズを決定することを推奨します。