建议做存储过程实现统计汇总的功能,并记入临时表中。因为你的数据量较大,写存储过程时应梢加注意。
方法:
一:首先创建一个临时表:temp(id,value)
二:根据不同的表执行插入语句:
insert into temp values (select id,sum(value) from tab1 group by id);
insert into temp values (select id,sum(value) from tab2 group by id);
...
三:统计最后结果:
select id,sum(value) from temp group by id;
四:做结果处理。
方法:
一:首先创建一个临时表:temp(id,value)
二:根据不同的表执行插入语句:
insert into temp values (select id,sum(value) from tab1 group by id);
insert into temp values (select id,sum(value) from tab2 group by id);
...
三:统计最后结果:
select id,sum(value) from temp group by id;
四:做结果处理。
解决方案 »
- oracle安装问题 求各位高手详解
- 如何配置Oracle XSQL Servlet和Tomcat
- 如何加密Oracle中的存储过程,从而在schema下看不到其源码?
- 多表连接搞不定?
- Oracle外连接问题,跪求答案
- 关于SQL语句的分析含义?
- 关于 (+)= 操作符
- oracle 9i不能安装,不知道原因,怎么解决,xp下
- oracle 8i 异常(用SQL-Plus连接出现异常,但是可以访问数据库)
- unable to extend index PAS.SYS_C009381 by 3596 in tablespace NEMS?
- 如何用sql语句计算一个标有多少列(字段)呢?
- 给位没事请帮我看看这个 sql语句 怎么写?
union all
select id,sum(value) as value from tab2 group by id
......
) group by id;
直接union二十多个表,还要做group的话会慢死你的。。
若用快照,效果更加好,它的变化,快照即进更新.
CREATE MATERIALIZED VIEW mv1 REFRESH FAST ON COMMIT
BUILD IMMEDIATE
AS
select id,sum(value) value from (
SELECT id,value
FROM t1
union all
select id,value
from t2
.....)
group by id;
因为我实际的统计其实并不是只对一个字段,还有几个字段,那么这个临时表就会占1G多空间beckhambobo(beckham) 用物化视图的话,我的问题是最后统计的那句sum加group by会不会很慢,而且跟直接用分区表速度上谁更快呢??