java - 如何编写 ETL 以根据 Oracle UNDO 设置进行操作?

标签 java oracle etl undo database-administration

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

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

最佳答案

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

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

关于java - 如何编写 ETL 以根据 Oracle UNDO 设置进行操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13836085/

相关文章:

java - 设置 SQLNET.ALLOWED_LOGON_VERSION 后 Oracle 监听器状态被阻止

oracle - 用mybatis 3调用pl/sql函数

java - 如何使用 Hibernate (EntityManager) 或 JPA 调用 Oracle 函数或过程

mysql - 基于父子关系的 MySQL 的 Talend Open Studio 数据迁移

postgresql - 用于近实时 ETL 架构的正确工具

sql-server - 使用 SSIS 将数据从一个数据库复制到另一个数据库

java - 机器人和按键

java - (java) HttpEntity.getContent() 输出有限的 InputStream (8192b/7748b) ...我正在尝试下载 2.4MB 文件

java - MapReduce 程序不在 main 和 mapper 之间共享字符串变量

sql - 在 Oracle 中的连接(连接)表上创建索引