「特に、このスクリプトのロールバックには関心がありません。失敗した場合は、もう一度実行できます。」
1 つの質問は、スクリプトを再度実行するために、以前のバックアップに戻る必要があるか、またその準備ができているかということです。つまり、プロセスが 1,000 万行の後で失敗した場合、単純にスクリプトを再実行すると 6,100 万行が挿入されるか、1,000 万行がスキップ/無視されるか、1,000 万行が更新されて 4,100 万行が挿入されます。
また、NOLOGGING 挿入を行う場合は、ジョブの直後に新しいバックアップが必要になる可能性があります。スクリプトの実行中に特定の時点へのポイント イン タイム リカバリを実行すると問題が発生するため、スクリプトの実行中にデータベースで他のアクティビティが発生していることも考慮する必要があります。
PL/SQL スクリプトの記述方法によっては、行ごとの処理ではなく、大きな SQL を使用することで、元に戻す操作を減らすことができる場合があります (たとえば、処理されたブロックへの再アクセスを最小限に抑えることにより)。
UNDO の削減または UNDO の再利用を可能にするコミットの影響を本当に理解していない限り、私の最初の推奨事項は、単純に UNDO テーブルスペースのサイズを増やすことです。もちろん、undo のバケツ負荷を生成した場合、障害がロールバックするのに長い時間がかかるという欠点があります。