|
加并行参数后cube快了
SQL> create table tcube parallel 8 as select g1,g2,g3,g4,sum(v1)s1,count(v1)c1,grouping_id(g1,g2,g3,g4)gid from t group by cube(g1,g2,
g3,g4);
表已创建。
已用时间: 00: 00: 02.03
SQL> drop table tcube2 purge;
表已删除。
已用时间: 00: 00: 00.82
SQL> create table tcube2 parallel 8 as
s 2 elect G1,G2,G3,G4,count(v1)c1,sum(v1)s1,0 gid from t group by G1,G2,G3,G4 union all
3 select null G1,G2,G3,G4,count(v1)c1,sum(v1)s1,1 gid from t group by null,G2,G3,G4 union all
se 4 lect G1,null G2,G3,G4,count(v1)c1,sum(v1)s1,2 gid from t group by G1,null,G3,G4 union all
5 select null G1,null G2,G3,G4,count(v1)c1,sum(v1)s1,3 gid from t group by null,null,G3,G4 union all
6 select G1,G2,null G3,G4,count(v1)c1,sum(v1)s1,4 gid from t group by G1,G2,null,G4 union all
se 7 lect null G1,G2,null G3,G4,count(v1)c1,sum(v1)s1,5 gid from t group by null,G2,null,G4 union all
se 8 lect G1,null G2,null G3,G4,count(v1)c1,sum(v1)s1,6 gid from t group by G1,null,null,G4 union all
se 9 lect null G1,null G2,null G3,G4,count(v1)c1,sum(v1)s1,7 gid from t group by null,null,null,G4 union all
s 10 elect G1,G2,G3,null G4,count(v1)c1,sum(v1)s1,8 gid from t group by G1,G2,G3,null union all
11 select null G1,G2,G3,null G4,count(v1)c1,sum(v1)s1,9 gid from t group by null,G2,G3,null union all
s 12 elect G1,null G2,G3,null G4,count(v1)c1,sum(v1)s1,10 gid from t group by G1,null,G3,null union all
se 13 lect null G1,null G2,G3,null G4,count(v1)c1,sum(v1)s1,11 gid from t group by null,null,G3,null union all
14 select G1,G2,null G3,null G4,count(v1)c1,sum(v1)s1,12 gid from t group by G1,G2,null,null union all
sel 15 ect null G1,G2,null G3,null G4,count(v1)c1,sum(v1)s1,13 gid from t group by null,G2,null,null union all
16 select G1,null G2,null G3,null G4,count(v1)c1,sum(v1)s1,14 gid from t group by G1,null,null,null union all
select null G1,null G2,null G3,null G4,count(v1)c1,sum(v1)s1,15 gid from t group by null,null,null,null; 17
表已创建。
已用时间: 00: 00: 03.84
SQL> create table tcube3 parallel 8 as
2 with s as
3 (
4 select G1,G2,G3,G4,count(v1)c1,sum(v1)s1,0 gid from t group by G1,G2,G3,G4
5 )
s 6 elect * from s union all
select null G1,G2,G3,G4,sum(c1)c1,sum(s1)s1,1 gid from s group by null,G2,G3,G4 union all
select G1,null G2,G3,G4,sum(c1)c1,sum(s1)s1,2 gid from s group by G1,null,G3,G4 union all
select null G1,null G2,G3,G4,sum(c1)c1,sum(s1)s1,3 gid from s group by null,null,G3,G4 union all
select G1,G2,null G3,G4,sum(c1)c1,sum(s1)s1,4 gid from s group by G1,G2,null,G4 union all
select null G1,G2,null G3,G4,sum(c1)c1,sum(s1)s1,5 gid from s group by null,G2,null,G4 union all
select G1,null G2,null G3,G4,sum(c1)c1,sum(s1)s1,6 gid from s group by G1,null,null,G4 union all
select null G1,null G2,null G3,G4,sum(c1)c1,sum(s1)s1,7 gid from s group by null,null,null,G4 union all
select G1,G2,G3,null G4,sum(c1)c1,sum(s1)s1,8 gid from s group by G1,G2,G3,null union all
select null G1,G2,G3,null G4,sum(c1)c1,sum(s1)s1,9 gid from s group by null,G2,G3,null union all
select G1,null G2,G3,null G4,sum(c1)c1,sum(s1)s1,10 gid from s group by G1,null,G3,null union all
select null G1,null G2,G3,null G4,sum(c1)c1,sum(s1)s1,11 gid from s group by null,null,G3,null union all
select G1,G2,null G3,null G4,sum(c1)c1,sum(s1)s1,12 gid from s group by G1,G2,null,null union all
select null G1,G2,null G3,null G4,sum(c1)c1,sum(s1)s1,13 gid from s group by null,G2,null,null union all
select G1,null G2,null G3,null G4,sum(c1)c1,sum 7 8 9 10 11 12 13 14 15 16 17 18 19 20 (s1)s1,14 gid fro
m s group by G1,null,null,null union all
select null G1,null G2,null G3,nul 21 l G4,sum(c1)c1,sum(s1)s1,15 gid from s group by null,null,null,null;
表已创建。
已用时间: 00: 00: 05.47(比10楼不并行更慢)
[ 本帖最后由 〇〇 于 2010-2-10 10:05 编辑 ] |
|