タイトル Oracleの列数増加による性能劣化について
詳細

NET8(SQL*Net)を用いOracleにアクセスするアプリケーションで、 SQL文で扱う列数が多くなると、ある列数を境に急激な性能劣化が 起こることがあります。
これは、NET8(SQL*Net)の通信バッファサイズを指定するパラメータ「SDU」に 適切な値が設定されていないことが原因です。
SDUのパラメータを調整することにより、ネットワーク間の データ転送をチューニングする(やりとりの回数を減らす)ことで性能改善が可能です。

SDUは、Oracle設定ファイル「tnsnames.ora」および「listener.ora」に記述します(これらのファイルは、 通常、Oracleホーム配下の network/adminディレクトリに存在します)。

以下に設定例を示します。

tnsnames.ora:記述例(クライアント側)
  ORCL.WORLD = (DESCRIPTION=
          (ADDRESS=(PROTOCOL=TCP)(PORT=1521)(HOST=INVENTORY))
          (CONNECT_DATA=(SID=ORCL))
          (SDU=4096)
         )


listener.ora:記述例(サーバ側)
  ID_LIST_LISTENER = (SID_LIST=(SID_DESC=(SID_NAME=ORCL)(SDU=4096)))

注意:
1) SDUはサーバ/クライアントで異なっていた場合、小さい値が有効になります(デフォルトは2048)。
2) 設定後はlistenerの再起動が必要です。


詳細については、「NET8 管理者ガイド」の参照やOracle購入元に問い合わせ等にて ご確認ください。

環境 Version 全バージョン
OS 全OS
更新日 2001.11.27