ヘッダーをスキップ
Oracle® Database Heterogeneous Connectivityユーザーズ・ガイド
12cリリース1 (12.1)
E52376-02
  目次へ移動
目次
索引へ移動
索引

前
次へ
 

配列フェッチの再ブロック化の制御

デフォルトでは、エージェントはシステムへの送信分として十分なデータを取得するまで、Oracle以外のシステムからデータをフェッチします。つまり、Oracle以外のシステムからフェッチされたバイト数がHS_RPC_FETCH_SIZE初期化パラメータの値以上になるまで、フェッチが続行されます。言い換えると、エージェントはOracle Databaseとの間で、HS_RPC_FETCH_SIZE初期化パラメータの値により定義されたサイズ単位でデータを再ブロック化します。

Oracle以外のシステムで配列フェッチがサポートされる場合は、配列フェッチによりOracle以外のシステムからフェッチしたデータを、HS_RPC_FETCH_SIZE初期化パラメータの正確な値に達するまで待たずにOracle Databaseに即時に送信できます。つまり、Oracle以外のシステムからOracle Databaseにデータをストリームし、HS_RPC_FETCH_REBLOCKING初期化パラメータの値をOFFに設定して再ブロック化を無効にできます。

たとえば、HS_RPC_FETCH_SIZEを64 KB、HS_FDS_FETCH_ROWSを100行に設定するとします。また、各行のサイズが約600バイトであるとすると、100行では約60 KBになります。HS_RPC_FETCH_REBLOCKING初期化パラメータをONに設定すると、エージェントはOracle以外のシステムから100行のフェッチを開始します。

エージェントにはデータが60KBしかないため、データはOracle Databaseに送信されません。かわりに、エージェントはOracle以外のシステムから次の100行をフェッチします。これでエージェントにあるデータが120KBになったため、最初の64KBをOracle Databaseに送信できます。

この時点で、エージェントには56 KBのデータが残っています。エージェントはOracle以外のシステムからさらに100行をフェッチした後、次の64KBのデータをOracle Databaseに送信します。HS_RPC_FETCH_REBLOCKING初期化パラメータをOFFに設定すると、最初の100行がOracleデータベース・サーバーに即時に送信されます。