1

我正在增强基于 Java 的 ETL 软件。这个工具在 Oralce 安装中的一个问题是,当 ETL 期间发生大量删除时,即使我使用较小的批处理大小进行中间提交,批处理也会耗尽 UNDO 空间。在我当前的生产场景中,存在 4GB 的硬限制。

所以,现在,比如说,我的程序尝试从父表中删除 10000 条记录,在每 1000 条记录和每个记录删除后提交,级联从 5 个子表中删除 100 万条记录,我有 1000x5x1000,000 次删除发生每个批次/提交。我希望我的软件比这更智能——我希望它能够计算出 Oracle UNDO 空间,估计将触发多少删除并相应地限制批量大小。我该怎么做呢?如何使用查询计算 UNDO 相关信息?

4

1 回答 1

2

4GB不算什么。正确的做法是增加UNDO空间。

请注意,不鼓励大量删除,并且非常值得研究消除这种情况的方法。

于 2012-12-12T09:08:04.297 回答