VARRAY
は、データベースにロードされる前にクライアント・メモリーに作成されます。VARRAY
の各要素には、データベースにロードする前に、4バイトのクライアント・メモリーが必要です。そのため、1000個の要素を持つVARRAY
をロードする場合は、VARRAY
をデータベースにロードする前に、それぞれのVARRAY
インスタンスに、4000バイト以上のクライアント・メモリーが必要です。多くの場合、SQL*Loaderでは、VARRAY
の構築やロードに、2倍から3倍のメモリー量を必要とします。
BINDSIZE
パラメータを使用して、SQL*Loaderでレコードのロードに割り当てるメモリーの量を指定します。BINDSIZE
に指定された値に応じて、SQL*Loaderで、ロード中の各フィールドのサイズを考慮し、1回のトランザクションでロードできる行数を判断します。行数が多ければトランザクションは少なくなり、パフォーマンスは向上します。ただし、システムのメモリー量に制限がある場合、パフォーマンスを優先せず、SQL*Loaderで算出した値より低い値をROWS
に指定できます。
非常に大きいVARRAY
または多数の小さいVARRAY
が原因で、ロード中にメモリーが不足する場合があります。この場合は、BINDSIZE
またはROWS
により小さい値を指定し、再ロードします。