1

Java ベースの ETL ソフトウェアを強化しています。Oralce インストールにおけるこのツールの問題の 1 つは、ETL 中に大量の削除が発生した場合、中間コミットでより小さいバッチ サイズを使用しても、バッチが UNDO スペースを使い果たすことです。現在の実稼働シナリオでは、4 GB のハード リミットが存在します。

したがって、たとえば、私のプログラムは親テーブルから 10000 レコードを削除しようとし、1000 レコードごとにコミットし、レコードを削除するたびに、カスケードは 5 つの子テーブルから 100 万レコードを削除します。ソフトウェアをこれよりも賢くしたい - Oracle UNDO スペースを把握し、トリガーされる削除の数を推定し、それに応じてバッチサイズを制限したい. どうすればいいですか?クエリを使用して UNDO 関連の情報を取得するにはどうすればよいですか?

4

1 に答える 1

2

4GBは何もありません。正しいアプローチは、UNDO スペースを増やすことです。

大規模な削除も推奨されないことに注意してください。それを排除する方法を検討する価値は十分にあります。

于 2012-12-12T09:08:04.297 に答える