首页 > 解决方案 > 无需完全扫描即可知道何时在 Oracle 中更新了表

问题描述

我正在构建一个 Oracle 连接器,它定期从几个非常大的表中读取数据,其中一些被划分为分区。

我试图找出上次读取时更新了哪个表,以避免不必要的查询。我找到的最后一个ora_rowscnupdated_at唯一的方法需要全表扫描以查看表中是否有新的或更新的行。

有没有办法在没有完全扫描的情况下判断表中的一行是否被插入或更新?

标签: oracleetl

解决方案


几个想法: 1. 创建一个表来通过table_name 存储最后一个DML,然后在表上创建一个简单的触发器来更新元表。2. 在表上创建一个物化视图日志,并使用日志中的数据来确定更改。


推荐阅读