oracle - 无需完全扫描即可知道何时在 Oracle 中更新了表
问题描述
我正在构建一个 Oracle 连接器,它定期从几个非常大的表中读取数据,其中一些被划分为分区。
我试图找出上次读取时更新了哪个表,以避免不必要的查询。我找到的最后一个ora_rowscn
或updated_at
唯一的方法需要全表扫描以查看表中是否有新的或更新的行。
有没有办法在没有完全扫描的情况下判断表中的一行是否被插入或更新?
解决方案
几个想法: 1. 创建一个表来通过table_name 存储最后一个DML,然后在表上创建一个简单的触发器来更新元表。2. 在表上创建一个物化视图日志,并使用日志中的数据来确定更改。
推荐阅读
- node.js - 当我使用“mongoose.connect”时,Express 服务器没有启动
- javascript - 类型错误:this.props.disses 未定义
- django - 使用 mongoengine 连接到 mongo 云
- javascript - 如何使用 jquery 获取 DOM 中对象的函数?
- .net - DrawImage 中的灰色边框(.NET system.drawing.drawing2D)
- c# - 为什么 CSVReader 只读取很少的文件?
- node.js - 正确下载了 node.js 但仍然无法安装 browser-sync 并收到这些警告
- intellij-idea - 如何在 Windows 中打开 IntelliJ IDEA?
- python - 卸载 toml 包出错后 pip 坏了,我可以采取哪些步骤来重置它?
- c++ - 如何让我的蛇在 C++ 中运行或移动继续移动?