有6GB的表(oracle 12),大约每1秒更改一次(删除,插入,更新)。
我有一个宁静的应用程序,它使用休眠模式来调用带有一些过滤器的数据库,以从该数据库表中获取数据。在某些情况下,“用户”想要从表中将1GB数据作为csv或xlsx报告,从数据库中选择和获取数据的时间太长。 所以我想,将整个数据库表放入java对象(放入堆)并直接从该对象进行搜索和导出也许更好。
但是有一个问题: 我的Java对象应该与oracle Db表同步。 从Java侦听/跟踪oracle表更改的最佳方法是什么?
我知道的一种方法是oracle util UTL_HTTP ,它可以直接从oracle调用Web服务,并使用此util通知服务有关数据更改的信息。
休眠是否还可以侦听不是从同一服务启动的oracle表更改?我的意思是,APP1是否有可能侦听某些oracle table_1,并且当APP2将某些数据更改为oracle table_1时,APP1会自动知道这一点。如果可以,请提供一些示例。
另外,我想知道您如何将整个表数据导入服务,并在此对象中创建过滤器,它会很轻巧吗? (我知道会一直使用〜6GB内存)