首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

ORCALE 海量数据统计有关问题

2012-10-15 
ORCALE 海量数据统计问题我现在数据库里面有一个表,3个小时就有3亿的数据,已经分区,也按要求加了索引了~现

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;


[解决办法]
关键不是查询,而是统计。
在源表中,统计 + 查询,明显不合适。

建议 源表 -> 统计表 -> 分析查询

热点排行