每次更新 Oracle DB 的特定表(任何类型的更新,包括记录添加、删除和修改)时,我都需要在 Java 中运行一个方法。
从 Java 中“轮询”表以获取具有良好性能且不会对数据库造成太大压力的更改的最有效方法是什么?
不幸的是,我有很多限制:
- 我无法创建额外的表、触发器、存储过程等,因为我无法控制数据库管理/设计。
- 我宁愿避免Oracle Change Notification,正如该帖子中所建议的那样,因为它似乎涉及 C/JNI。
- 仅仅计算记录是不够的,因为我可能会错过修改和同时添加/删除。
- 在实际更改和通知之间最多延迟 30/60 秒是可以接受的。
- 我要监控的表通常有 100k+ 条记录(大约 1m+),所以我不认为拉整个表是一种选择(从数据库负载/性能的角度来看)。