2 xuxiaoyinliu xuxiaoyinliu 于 2016.03.15 08:31 提问

Oracle如何实现增量查询?

第一次遇到这个问题,现在有个需求,每隔5秒要统计从今天零点到现在的数据,要查询的表很大,除第一次查询外不能再从零点开始,只能以上一次查询的时间为起点,请问这个该怎么做?请大家提供下思路或方法,谢谢

4个回答

willkinson
willkinson   2016.03.15 09:26
已采纳

表上总归会有个时间戳的字段咯?在这个字段上加上索引,用这个字段来查询,注意下查询的时候不要用函数,不然触发不了索引,如果数据量实在太大,可以考虑把已经用不到的历史数据备份到别的库或者表中,再不行就搞分区表吧

xuxiaoyinliu
xuxiaoyinliu 谢谢
一年多之前 回复
qq_32224861
qq_32224861   2016.03.15 09:40

我觉得可以把数据和最后的查询时间放到缓存里,然后每次从缓存里取数据再加上通过时间查询的新的数据。可能不是正确的仅供擦考

xuxiaoyinliu
xuxiaoyinliu 谢谢你
一年多之前 回复
cuiweicai
cuiweicai   2016.03.15 10:02

加个标识字段,在标识字段上给个索引,查过的给标识下就好了啊

xuxiaoyinliu
xuxiaoyinliu 谢谢
一年多之前 回复
dandanwang
dandanwang   2016.03.16 15:54

写个存储过程,新建一个表管理最新时间;算法如下:检查该表存在最大值,如果没有就写入,若有就更新该记录,第二次查询的时候从该表拿到时间查询即可,同时查询完了就把最大时间更新如该表。
这样就可以实现数据的增量查询了。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!