ORCALE 海量数据统计问题
我现在数据库里面有一个表,3个小时就有3亿的数据,已经分区,也按要求加了索引了~现在单挑查询的话,速度很快,分了页的,1秒内可以查询出来,但是统计的话,和时间无关了,需要统计一个星期的数据,我现在统计3个小时的所有数据,都要10分钟左右,请问有什么好方法解决吗?希望能在1分钟内~
------解决方案--------------------根据你的业务可以将分区表再次进行划分,变为复合分区
复合分区的下级分区是按网站ID,或者网站名称第一个首字母进行分区,查询的时候就快了,但是能不能到1分钟内就得看你的数据库性能了
还有一种方法,用物化视图来统计每个小时内的网站浏览数
------解决方案--------------------
你这些统计应该不用太精确的,比如你可以接受的误差范围是1个小时,那么可以这样做:
基表A
物化视图B(创建表时指定nologging,每个小时增量刷新):
select * from A where 你筛选的数据范围;
物化视图C(创建表时指定nologging,基于B的on commit refresh):
select 网站ID,count(1) from A group by 网站ID;
------解决方案--------------------关键不是查询,而是统计。
在源表中,统计 + 查询,明显不合适。
建议 源表 -> 统计表 -> 分析查询