デフォルトでは、エージェントはシステムへの送信分として十分なデータを取得するまで、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データベース・サーバーに即時に送信されます。