Java ベースの ETL ソフトウェアを強化しています。Oralce インストールにおけるこのツールの問題の 1 つは、ETL 中に大量の削除が発生した場合、中間コミットでより小さいバッチ サイズを使用しても、バッチが UNDO スペースを使い果たすことです。現在の実稼働シナリオでは、4 GB のハード リミットが存在します。
したがって、たとえば、私のプログラムは親テーブルから 10000 レコードを削除しようとし、1000 レコードごとにコミットし、レコードを削除するたびに、カスケードは 5 つの子テーブルから 100 万レコードを削除します。ソフトウェアをこれよりも賢くしたい - Oracle UNDO スペースを把握し、トリガーされる削除の数を推定し、それに応じてバッチサイズを制限したい. どうすればいいですか?クエリを使用して UNDO 関連の情報を取得するにはどうすればよいですか?