列を連結して区切りますか、それとも固定幅をエクスポートしますか?
SQL*Plusスクリプトのチューニングに関するこのドキュメントを参照してください。 。スクリプトに固有の、スクリプトを高速化するためのいくつかの可能な方法を次に示します。
- LINESIZEができるだけ小さいことを確認してください。最大列長を追加します(固定幅でない場合は区切り文字を追加します)。 SQL * Plusはエクスポートされたすべての行にその量のメモリを割り当てるため、これはパフォーマンスに劇的な影響を与える可能性があります。 410はそれほど大きくはありませんが、減らすことができれば役に立ちます。これは私の経験では大きな違いをもたらしました。
- TRIMSPOOLをオンにしないでください。これも大きな影響を与える可能性があります。次に、各行がLINESIZEにパディングされますが、最適な行サイズが使用され、ファイルの使用方法によっては、許容できる場合があります。ただし、末尾のスペースを完全に削除したい場合は、エクスポート後に他の方法を使用してトリミングする方が速い場合がよくあります。
- ARRAYSIZEで遊んでください。それは(少し)役立つかもしれません。 SQL*Plusのフェッチサイズを設定します。デフォルトは15行です。たとえば、100にバンプすると役立つ場合がありますが、大きすぎると速度が低下する可能性があります。
これがお役に立てば幸いです!