ITPUB??ì3
ITPUB论坛 » Oracle入门与认证 » 对Oracle分组汇总的性能测试

标题: [原创] 对Oracle分组汇总的性能测试
离线 hotiice
版主


精华贴数 9
个人空间 0
技术积分 15966 (66)
社区积分 1757 (641)
注册日期 2004-9-9
论坛徽章:18
现任管理团队成员会员2007贡献徽章铁扇公主设计板块每日发贴之星设计板块每日发贴之星生肖徽章2007版:蛇
2008年新春纪念徽章生肖徽章2007版:鼠生肖徽章2007版:鸡生肖徽章2007版:牛生肖徽章2007版:龙生肖徽章2007版:兔

发表于 2008-6-25 09:56 
对Oracle分组汇总的性能测试

t8 x1,v1,v2.....v80
80000行
mt x1,g1,g2,g3
80000行
x1作为关联关键字
已进行索引
SQL> create table mt( x1 varchar(10),g1 number(10),g2 number(10),g3 number(10));

Table created.

Elapsed: 00:00:00.03
SQL> insert into mt select level,mod(level*DBMS_RANDOM.RANDOM,3),mod(level*DBMS_RANDOM.RANDOM,3),mod(level*DBMS_RANDOM.RANDOM,3) from dual connect by level<=80000;

80000 rows created.

Elapsed: 00:00:03.86
SQL> commit;

Commit complete.

Elapsed: 00:00:00.01

SQL>
SQL> create index idx1 on mt(x1);

Index created.

Elapsed: 00:00:00.41

SQL> create table t8 as select * from tcol80;

Table created.

Elapsed: 00:00:08.04
SQL> create index idx2 on t8(x1);

Index created.

Elapsed: 00:00:00.85
SQL>
SQL> select g1,sum(v1) s1,
  2  sum(v2) s2,
  3  sum(v3) s3,
  4  sum(v4) s4,
  5  sum(v5) s5,
  6  sum(v6) s6,
  7  sum(v7) s7,
  8  sum(v8) s8,
  9  sum(v9) s9,
10  sum(v10) s10,
11  sum(v11) s11,
12  sum(v12) s12,
13  sum(v13) s13,
14  sum(v14) s14,
15  sum(v15) s15,
16  sum(v16) s16,
17  sum(v17) s17,
18  sum(v18) s18,
19  sum(v19) s19,
20  sum(v20) s20 from t8,mt where t8.x1=mt.x1 group by g1;  



Elapsed: 00:00:00.72
SQL>
SQL> 20
20* sum(v20) s20 from t8,mt where t8.x1=mt.x1 group by g1
SQL> c/g1/g2
20* sum(v20) s20 from t8,mt where t8.x1=mt.x1 group by g2
SQL> 1
  1* select g1,sum(v1) s1,
SQL> c/g1/g2
  1* select g2,sum(v1) s1,
SQL> /



Elapsed: 00:00:00.74
SQL> 1   
  1* select g2,sum(v1) s1,
SQL> c/g2/g3
  1* select g3,sum(v1) s1,
SQL> 20
20* sum(v20) s20 from t8,mt where t8.x1=mt.x1 group by g2
SQL> c/g2/g3
20* sum(v20) s20 from t8,mt where t8.x1=mt.x1 group by g3
SQL> /



Elapsed: 00:00:00.74
SQL>
SQL> select g1,g2,g3 sum(v1) s1,
  2  sum(v2) s2,
  3  sum(v3) s3,
  4  sum(v4) s4,
  5  sum(v5) s5,
  6  sum(v6) s6,
  7  sum(v7) s7,
  8  sum(v8) s8,
  9  sum(v9) s9,
10  sum(v10) s10,
11  sum(v11) s11,
12  sum(v12) s12,
13  sum(v13) s13,
14  sum(v14) s14,
15  sum(v15) s15,
16  sum(v16) s16,
17  sum(v17) s17,
18  sum(v18) s18,
19  sum(v19) s19,
20  sum(v20) s20 from t8,mt where t8.x1=mt.x1 group by grouping sets((g1),(g2),(g3));  
select g1,g2,g3 sum(v1) s1,
                   *
ERROR at line 1:
ORA-00923: FROM keyword not found where expected


Elapsed: 00:00:00.00
SQL> 1
  1* select g1,g2,g3 sum(v1) s1,
SQL> c/3/3,
  1* select g1,g2,g3, sum(v1) s1,
SQL> /



15 rows selected.

Elapsed: 00:00:02.63
SQL> /


15 rows selected.

Elapsed: 00:00:02.14


Execution Plan
----------------------------------------------------------
Plan hash value: 1982715053

------------------------------------------------------------------------------------------------------------------
| Id  | Operation                  | Name                        | Rows  | Bytes |TempSpc| Cost (%CPU)| Time     |
------------------------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT           |                             | 68343 |    19M|       |  2838   (3)| 00:00:35 |
|   1 |  TEMP TABLE TRANSFORMATION |                             |       |       |       |            |          |
|   2 |   LOAD AS SELECT           |                             |       |       |       |            |          |
|*  3 |    HASH JOIN               |                             | 68343 |    20M|  4232K|  2827   (3)| 00:00:34 |
|   4 |     TABLE ACCESS FULL      | MT                          | 74590 |  3350K|       |    63  (13)| 00:00:01 |
|   5 |     TABLE ACCESS FULL      | T8                          | 68343 |    17M|       |  1641   (3)| 00:00:20 |
|   6 |   LOAD AS SELECT           |                             |       |       |       |            |          |
|   7 |    HASH GROUP BY           |                             |     1 |   273 |       |     3  (34)| 00:00:01 |
|   8 |     TABLE ACCESS FULL      | SYS_TEMP_0FD9D662A_1E0163A1 |     1 |   273 |       |     2   (0)| 00:00:01 |
|   9 |   LOAD AS SELECT           |                             |       |       |       |            |          |
|  10 |    HASH GROUP BY           |                             |     1 |   273 |       |     3  (34)| 00:00:01 |
|  11 |     TABLE ACCESS FULL      | SYS_TEMP_0FD9D662A_1E0163A1 |     1 |   273 |       |     2   (0)| 00:00:01 |
|  12 |   LOAD AS SELECT           |                             |       |       |       |            |          |
|  13 |    HASH GROUP BY           |                             |     1 |   273 |       |     3  (34)| 00:00:01 |
|  14 |     TABLE ACCESS FULL      | SYS_TEMP_0FD9D662A_1E0163A1 |     1 |   273 |       |     2   (0)| 00:00:01 |
|  15 |   VIEW                     |                             |     1 |   299 |       |     2   (0)| 00:00:01 |
|  16 |    TABLE ACCESS FULL       | SYS_TEMP_0FD9D662B_1E0163A1 |     1 |   299 |       |     2   (0)| 00:00:01 |
------------------------------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   3 - access("SYS_TBL_$2$"."X1"="SYS_TBL_$1$"."X1")

Note
-----
   - dynamic sampling used for this statement


Statistics
----------------------------------------------------------
         18  recursive calls
       1876  db block gets
      12914  consistent gets
       1819  physical reads
       2720  redo size
       4605  bytes sent via SQL*Net to client
        492  bytes received via SQL*Net from clientn
          2  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
         15  rows processed


[ 本帖最后由 hotiice 于 2008-6-25 10:25 编辑 ]


__________________
①②⑧

只看该作者    顶部
离线 hotiice
版主


精华贴数 9
个人空间 0
技术积分 15966 (66)
社区积分 1757 (641)
注册日期 2004-9-9
论坛徽章:18
现任管理团队成员会员2007贡献徽章铁扇公主设计板块每日发贴之星设计板块每日发贴之星生肖徽章2007版:蛇
2008年新春纪念徽章生肖徽章2007版:鼠生肖徽章2007版:鸡生肖徽章2007版:牛生肖徽章2007版:龙生肖徽章2007版:兔

发表于 2008-6-25 10:15 
改变提示
SQL> select/*+ RULE */ g1,g2,g3, sum(v1) s1,
  2  sum(v2) s2,
  3  sum(v3) s3,
  4  sum(v4) s4,
  5  sum(v5) s5,
  6  sum(v6) s6,
  7  sum(v7) s7,
  8  sum(v8) s8,
  9  sum(v9) s9,
10  sum(v10) s10,
11  sum(v11) s11,
12  sum(v12) s12,
13  sum(v13) s13,
14  sum(v14) s14,
15  sum(v15) s15,
16  sum(v16) s16,
17  sum(v17) s17,
18  sum(v18) s18,
19  sum(v19) s19,
20  sum(v20) s20 from t8,mt where t8.x1=mt.x1  and t8.x1<=2000 group by grouping sets((g1),(g2),(g3));  

15 rows selected.

Elapsed: 00:00:00.37

Execution Plan
----------------------------------------------------------
Plan hash value: 3230086573

----------------------------------------------------------------------------------------------------------
| Id  | Operation                  | Name                        | Rows  | Bytes | Cost (%CPU)| Time     |
----------------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT           |                             |  1276 |   372K|  1714   (3)| 00:00:21 |
|   1 |  TEMP TABLE TRANSFORMATION |                             |       |       |            |          |
|   2 |   LOAD AS SELECT           |                             |       |       |            |          |
|*  3 |    HASH JOIN               |                             |  1276 |   390K|  1700   (3)| 00:00:21 |
|*  4 |     TABLE ACCESS FULL      | T8                          |  1276 |   332K|  1633   (2)| 00:00:20 |
|   5 |     TABLE ACCESS FULL      | MT                          | 74590 |  3350K|    63  (13)| 00:00:01 |
|   6 |   LOAD AS SELECT           |                             |       |       |            |          |
|   7 |    HASH GROUP BY           |                             |  2000 |   533K|     4  (50)| 00:00:01 |
|   8 |     TABLE ACCESS FULL      | SYS_TEMP_0FD9D6632_1E0163A1 |  2000 |   533K|     3  (34)| 00:00:01 |
|   9 |   LOAD AS SELECT           |                             |       |       |            |          |
|  10 |    HASH GROUP BY           |                             |  2000 |   533K|     4  (50)| 00:00:01 |
|  11 |     TABLE ACCESS FULL      | SYS_TEMP_0FD9D6632_1E0163A1 |  2000 |   533K|     3  (34)| 00:00:01 |
|  12 |   LOAD AS SELECT           |                             |       |       |            |          |
|  13 |    HASH GROUP BY           |                             |  2000 |   533K|     4  (50)| 00:00:01 |
|  14 |     TABLE ACCESS FULL      | SYS_TEMP_0FD9D6632_1E0163A1 |  2000 |   533K|     3  (34)| 00:00:01 |
|  15 |   VIEW                     |                             |  2000 |   583K|     3  (34)| 00:00:01 |
|  16 |    TABLE ACCESS FULL       | SYS_TEMP_0FD9D6633_1E0163A1 |  2000 |   583K|     3  (34)| 00:00:01 |
----------------------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   3 - access("SYS_TBL_$2$"."X1"="SYS_TBL_$1$"."X1")
   4 - filter(TO_NUMBER("SYS_TBL_$2$"."X1")<=2000)

Note
-----
   - dynamic sampling used for this statement


Statistics
----------------------------------------------------------
       1044  recursive calls
         82  db block gets
       7974  consistent gets
         75  physical reads
       5168  redo size
       4571  bytes sent via SQL*Net to client
        492  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          4  sorts (memory)
          0  sorts (disk)
         15  rows processed

SQL> select/*+ index(mt idx1) */ g1,g2,g3, sum(v1) s1,
  2  sum(v2) s2,
  3  sum(v3) s3,
  4  sum(v4) s4,
  5  sum(v5) s5,
  6  sum(v6) s6,
  7  sum(v7) s7,
  8  sum(v8) s8,
  9  sum(v9) s9,
10  sum(v10) s10,
11  sum(v11) s11,
12  sum(v12) s12,
13  sum(v13) s13,
14  sum(v14) s14,
15  sum(v15) s15,
16  sum(v16) s16,
17  sum(v17) s17,
18  sum(v18) s18,
19  sum(v19) s19,
20  sum(v20) s20 from t8,mt where t8.x1=mt.x1  and t8.x1<=2000 group by grouping sets((g1),(g2),(g3));  


15 rows selected.

Elapsed: 00:00:00.34

Execution Plan
----------------------------------------------------------
Plan hash value: 3391973251

-------------------------------------------------------------------------------------------------------------
| Id  | Operation                     | Name                        | Rows  | Bytes | Cost (%CPU)| Time     |
-------------------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT              |                             |  1276 |   372K|  4205   (2)| 00:00:51 |
|   1 |  TEMP TABLE TRANSFORMATION    |                             |       |       |            |          |
|   2 |   LOAD AS SELECT              |                             |       |       |            |          |
|   3 |    TABLE ACCESS BY INDEX ROWID| MT                          |     1 |    46 |     2   (0)| 00:00:01 |
|   4 |     NESTED LOOPS              |                             |  1276 |   390K|  4194   (1)| 00:00:51 |
|*  5 |      TABLE ACCESS FULL        | T8                          |  1276 |   332K|  1633   (2)| 00:00:20 |
|*  6 |      INDEX RANGE SCAN         | IDX1                        |     1 |       |     1   (0)| 00:00:01 |
|   7 |   LOAD AS SELECT              |                             |       |       |            |          |
|   8 |    HASH GROUP BY              |                             |     1 |   273 |     3  (34)| 00:00:01 |
|   9 |     TABLE ACCESS FULL         | SYS_TEMP_0FD9D6636_1E0163A1 |     1 |   273 |     2   (0)| 00:00:01 |
|  10 |   LOAD AS SELECT              |                             |       |       |            |          |
|  11 |    HASH GROUP BY              |                             |     1 |   273 |     3  (34)| 00:00:01 |
|  12 |     TABLE ACCESS FULL         | SYS_TEMP_0FD9D6636_1E0163A1 |     1 |   273 |     2   (0)| 00:00:01 |
|  13 |   LOAD AS SELECT              |                             |       |       |            |          |
|  14 |    HASH GROUP BY              |                             |     1 |   273 |     3  (34)| 00:00:01 |
|  15 |     TABLE ACCESS FULL         | SYS_TEMP_0FD9D6636_1E0163A1 |     1 |   273 |     2   (0)| 00:00:01 |
|  16 |   VIEW                        |                             |     1 |   299 |     2   (0)| 00:00:01 |
|  17 |    TABLE ACCESS FULL          | SYS_TEMP_0FD9D6637_1E0163A1 |     1 |   299 |     2   (0)| 00:00:01 |
-------------------------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   5 - filter(TO_NUMBER("SYS_TBL_$2$"."X1")<=2000)
   6 - access("SYS_TBL_$2$"."X1"="SYS_TBL_$1$"."X1")

Note
-----
   - dynamic sampling used for this statement


Statistics
----------------------------------------------------------
       1042  recursive calls
         81  db block gets
       9773  consistent gets
        238  physical reads
       5168  redo size
       4571  bytes sent via SQL*Net to client
        492  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          4  sorts (memory)
          0  sorts (disk)
         15  rows processed

SQL> select/*+ index(mt idx1) index(t8 idx2) */ g1,g2,g3, sum(v1) s1,
  2  sum(v2) s2,
  3  sum(v3) s3,
  4  sum(v4) s4,
  5  sum(v5) s5,
  6  sum(v6) s6,
  7  sum(v7) s7,
  8  sum(v8) s8,
  9  sum(v9) s9,
10  sum(v10) s10,
11  sum(v11) s11,
12  sum(v12) s12,
13  sum(v13) s13,
14  sum(v14) s14,
15  sum(v15) s15,
16  sum(v16) s16,
17  sum(v17) s17,
18  sum(v18) s18,
19  sum(v19) s19,
20  sum(v20) s20 from t8,mt where t8.x1=mt.x1  and t8.x1<=2000 group by grouping sets((g1),(g2),(g3));  


15 rows selected.


Elapsed: 00:00:00.31

Execution Plan
----------------------------------------------------------
Plan hash value: 2423108582

---------------------------------------------------------------------------------------------------------------
| Id  | Operation                       | Name                        | Rows  | Bytes | Cost (%CPU)| Time     |
---------------------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                |                             |  1276 |   372K|  4120   (1)| 00:00:50 |
|   1 |  TEMP TABLE TRANSFORMATION      |                             |       |       |            |          |
|   2 |   LOAD AS SELECT                |                             |       |       |            |          |
|   3 |    TABLE ACCESS BY INDEX ROWID  | MT                          |     1 |    46 |     2   (0)| 00:00:01 |
|   4 |     NESTED LOOPS                |                             |  1276 |   390K|  4109   (1)| 00:00:50 |
|   5 |      TABLE ACCESS BY INDEX ROWID| T8                          |  1276 |   332K|  1548   (2)| 00:00:19 |
|*  6 |       INDEX FULL SCAN           | IDX2                        |  3417 |       |   215   (6)| 00:00:03 |
|*  7 |      INDEX RANGE SCAN           | IDX1                        |     1 |       |     1   (0)| 00:00:01 |
|   8 |   LOAD AS SELECT                |                             |       |       |            |          |
|   9 |    HASH GROUP BY                |                             |     1 |   273 |     3  (34)| 00:00:01 |
|  10 |     TABLE ACCESS FULL           | SYS_TEMP_0FD9D663E_1E0163A1 |     1 |   273 |     2   (0)| 00:00:01 |
|  11 |   LOAD AS SELECT                |                             |       |       |            |          |
|  12 |    HASH GROUP BY                |                             |     1 |   273 |     3  (34)| 00:00:01 |
|  13 |     TABLE ACCESS FULL           | SYS_TEMP_0FD9D663E_1E0163A1 |     1 |   273 |     2   (0)| 00:00:01 |
|  14 |   LOAD AS SELECT                |                             |       |       |            |          |
|  15 |    HASH GROUP BY                |                             |     1 |   273 |     3  (34)| 00:00:01 |
|  16 |     TABLE ACCESS FULL           | SYS_TEMP_0FD9D663E_1E0163A1 |     1 |   273 |     2   (0)| 00:00:01 |
|  17 |   VIEW                          |                             |     1 |   299 |     2   (0)| 00:00:01 |
|  18 |    TABLE ACCESS FULL            | SYS_TEMP_0FD9D663F_1E0163A1 |     1 |   299 |     2   (0)| 00:00:01 |
---------------------------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   6 - filter(TO_NUMBER("SYS_TBL_$2$"."X1")<=2000)
   7 - access("SYS_TBL_$2$"."X1"="SYS_TBL_$1$"."X1")

Note
-----
   - dynamic sampling used for this statement


Statistics
----------------------------------------------------------
       1042  recursive calls
         81  db block gets
       3639  consistent gets
        719  physical reads
       5168  redo size
       4571  bytes sent via SQL*Net to client
        492  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          4  sorts (memory)
          0  sorts (disk)
         15  rows processed


[ 本帖最后由 hotiice 于 2008-6-25 10:18 编辑 ]


__________________
①②⑧

只看该作者    顶部
离线 hotiice
版主


精华贴数 9
个人空间 0
技术积分 15966 (66)
社区积分 1757 (641)
注册日期 2004-9-9
论坛徽章:18
现任管理团队成员会员2007贡献徽章铁扇公主设计板块每日发贴之星设计板块每日发贴之星生肖徽章2007版:蛇
2008年新春纪念徽章生肖徽章2007版:鼠生肖徽章2007版:鸡生肖徽章2007版:牛生肖徽章2007版:龙生肖徽章2007版:兔

发表于 2008-6-25 10:19 
用索引快了一点,RULE和CBO的执行计划相同


__________________
①②⑧

只看该作者    顶部
离线 hotiice
版主


精华贴数 9
个人空间 0
技术积分 15966 (66)
社区积分 1757 (641)
注册日期 2004-9-9
论坛徽章:18
现任管理团队成员会员2007贡献徽章铁扇公主设计板块每日发贴之星设计板块每日发贴之星生肖徽章2007版:蛇
2008年新春纪念徽章生肖徽章2007版:鼠生肖徽章2007版:鸡生肖徽章2007版:牛生肖徽章2007版:龙生肖徽章2007版:兔

发表于 2008-6-25 16:07 
grouping sets 虽然是一次全表扫描,但是执行时间和3个分别的SQL之和差不多


__________________
①②⑧

只看该作者    顶部
离线 hotiice
版主


精华贴数 9
个人空间 0
技术积分 15966 (66)
社区积分 1757 (641)
注册日期 2004-9-9
论坛徽章:18
现任管理团队成员会员2007贡献徽章铁扇公主设计板块每日发贴之星设计板块每日发贴之星生肖徽章2007版:蛇
2008年新春纪念徽章生肖徽章2007版:鼠生肖徽章2007版:鸡生肖徽章2007版:牛生肖徽章2007版:龙生肖徽章2007版:兔

发表于 2008-6-25 16:30 
当汇总的字段较多时,grouping sets更慢
100列测试单个分组g1 g2 g3都是00:00:01.93,grouping sets 00:00:07.29,再次执行00:00:06.68
另一台更低档的
g1 g2 g3都是00:00:02.90grouping sets  00:00:24.84 再次执行00:00:19.57


__________________
①②⑧

只看该作者    顶部
离线 hotiice
版主


精华贴数 9
个人空间 0
技术积分 15966 (66)
社区积分 1757 (641)
注册日期 2004-9-9
论坛徽章:18
现任管理团队成员会员2007贡献徽章铁扇公主设计板块每日发贴之星设计板块每日发贴之星生肖徽章2007版:蛇
2008年新春纪念徽章生肖徽章2007版:鼠生肖徽章2007版:鸡生肖徽章2007版:牛生肖徽章2007版:龙生肖徽章2007版:兔

发表于 2008-6-25 16:39 
cube(g1,g2,g3) 00:00:10.45,再次执行00:00:12.48
另一台更低档的
00:00:07.21 ,奇怪


__________________
①②⑧

只看该作者    顶部
离线 hotiice
版主


精华贴数 9
个人空间 0
技术积分 15966 (66)
社区积分 1757 (641)
注册日期 2004-9-9
论坛徽章:18
现任管理团队成员会员2007贡献徽章铁扇公主设计板块每日发贴之星设计板块每日发贴之星生肖徽章2007版:蛇
2008年新春纪念徽章生肖徽章2007版:鼠生肖徽章2007版:鸡生肖徽章2007版:牛生肖徽章2007版:龙生肖徽章2007版:兔

发表于 2008-6-26 12:52 
GROUPING SETS VS UNION ALL


create table tall as select mt.g1,mt.g2,mt.g3,tcol80.* from mt,tcol80 where mt.x1=tcol80.x1;

单表3个UNION ALL

Elapsed: 00:00:04.65

Execution Plan
----------------------------------------------------------
Plan hash value: 297211200

----------------------------------------------------------------------------
| Id  | Operation           | Name | Rows  | Bytes | Cost (%CPU)| Time     |
----------------------------------------------------------------------------
|   0 | SELECT STATEMENT    |      |   263K|   264M|  5231  (70)| 00:01:03 |
|   1 |  UNION-ALL          |      |       |       |            |          |
|   2 |   HASH GROUP BY     |      | 87813 |    88M|  1744   (8)| 00:00:21 |
|   3 |    TABLE ACCESS FULL| TALL | 87813 |    88M|  1714   (6)| 00:00:21 |
|   4 |   HASH GROUP BY     |      | 87813 |    88M|  1744   (8)| 00:00:21 |
|   5 |    TABLE ACCESS FULL| TALL | 87813 |    88M|  1714   (6)| 00:00:21 |
|   6 |   HASH GROUP BY     |      | 87813 |    88M|  1744   (8)| 00:00:21 |
|   7 |    TABLE ACCESS FULL| TALL | 87813 |    88M|  1714   (6)| 00:00:21 |
----------------------------------------------------------------------------

Note
-----
   - dynamic sampling used for this statement


Statistics
----------------------------------------------------------
         10  recursive calls
          0  db block gets
      22083  consistent gets
       6927  physical reads
          0  redo size
      16010  bytes sent via SQL*Net to client
       2227  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
         15  rows processed

单表GROUPING SETS

Elapsed: 00:00:06.52

Execution Plan
----------------------------------------------------------
Plan hash value: 2604983186

----------------------------------------------------------------------------------------------------------
| Id  | Operation                  | Name                        | Rows  | Bytes | Cost (%CPU)| Time     |
----------------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT           |                             | 87813 |    90M|  1725   (6)| 00:00:21 |
|   1 |  TEMP TABLE TRANSFORMATION |                             |       |       |            |          |
|   2 |   LOAD AS SELECT           |                             |       |       |            |          |
|   3 |    TABLE ACCESS FULL       | TALL                        | 87813 |    90M|  1714   (6)| 00:00:21 |
|   4 |   LOAD AS SELECT           |                             |       |       |            |          |
|   5 |    HASH GROUP BY           |                             |     1 |  1053 |     3  (34)| 00:00:01 |
|   6 |     TABLE ACCESS FULL      | SYS_TEMP_0FD9D6649_1E0163A1 |     1 |  1053 |     2   (0)| 00:00:01 |
|   7 |   LOAD AS SELECT           |                             |       |       |            |          |
|   8 |    HASH GROUP BY           |                             |     1 |  1053 |     3  (34)| 00:00:01 |
|   9 |     TABLE ACCESS FULL      | SYS_TEMP_0FD9D6649_1E0163A1 |     1 |  1053 |     2   (0)| 00:00:01 |
|  10 |   LOAD AS SELECT           |                             |       |       |            |          |
|  11 |    HASH GROUP BY           |                             |     1 |  1053 |     3  (34)| 00:00:01 |
|  12 |     TABLE ACCESS FULL      | SYS_TEMP_0FD9D6649_1E0163A1 |     1 |  1053 |     2   (0)| 00:00:01 |
|  13 |   VIEW                     |                             |     1 |  1079 |     2   (0)| 00:00:01 |
|  14 |    TABLE ACCESS FULL       | SYS_TEMP_0FD9D664A_1E0163A1 |     1 |  1079 |     2   (0)| 00:00:01 |
----------------------------------------------------------------------------------------------------------

Note
-----
   - dynamic sampling used for this statement


Statistics
----------------------------------------------------------
         60  recursive calls
       7363  db block gets
      28976  consistent gets
       7223  physical reads
       2816  redo size
      16135  bytes sent via SQL*Net to client
        492  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
         15  rows processed


2表关联3个UNION ALL

Elapsed: 00:00:05.05

Execution Plan
----------------------------------------------------------
Plan hash value: 2348220724

-------------------------------------------------------------------------------
| Id  | Operation            | Name   | Rows  | Bytes | Cost (%CPU)| Time     |
-------------------------------------------------------------------------------
|   0 | SELECT STATEMENT     |        |    15 |  9135 |  5264  (70)| 00:01:04 |
|   1 |  UNION-ALL           |        |       |       |            |          |
|   2 |   HASH GROUP BY      |        |     5 |  3045 |  1754   (8)| 00:00:22 |
|*  3 |    HASH JOIN         |        | 80000 |    46M|  1727   (6)| 00:00:21 |
|   4 |     TABLE ACCESS FULL| MT     | 80000 |   703K|    62  (12)| 00:00:01 |
|   5 |     TABLE ACCESS FULL| TCOL80 | 80000 |    45M|  1656   (6)| 00:00:20 |
|   6 |   HASH GROUP BY      |        |     5 |  3045 |  1755   (8)| 00:00:22 |
|*  7 |    HASH JOIN         |        | 80000 |    46M|  1728   (6)| 00:00:21 |
|   8 |     TABLE ACCESS FULL| MT     | 80000 |   703K|    63  (13)| 00:00:01 |
|   9 |     TABLE ACCESS FULL| TCOL80 | 80000 |    45M|  1656   (6)| 00:00:20 |
|  10 |   HASH GROUP BY      |        |     5 |  3045 |  1755   (8)| 00:00:22 |
|* 11 |    HASH JOIN         |        | 80000 |    46M|  1728   (6)| 00:00:21 |
|  12 |     TABLE ACCESS FULL| MT     | 80000 |   703K|    63  (13)| 00:00:01 |
|  13 |     TABLE ACCESS FULL| TCOL80 | 80000 |    45M|  1656   (6)| 00:00:20 |
-------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   3 - access("T"."X1"="MT"."X1")
   7 - access("T"."X1"="MT"."X1")
  11 - access("T"."X1"="MT"."X1")

Statistics
----------------------------------------------------------
          1  recursive calls
          0  db block gets
      22113  consistent gets
       7110  physical reads
          0  redo size
      16010  bytes sent via SQL*Net to client
       2300  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
         15  rows processed

2表关联GROUPING SETS

Elapsed: 00:00:07.05

Execution Plan
----------------------------------------------------------
Plan hash value: 573733819

----------------------------------------------------------------------------------------------------------
| Id  | Operation                  | Name                        | Rows  | Bytes | Cost (%CPU)| Time     |
----------------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT           |                             |    63 | 67977 |  1739   (7)| 00:00:21 |
|   1 |  TEMP TABLE TRANSFORMATION |                             |       |       |            |          |
|   2 |   LOAD AS SELECT           |                             |       |       |            |          |
|*  3 |    HASH JOIN               |                             | 80000 |    46M|  1728   (6)| 00:00:21 |
|   4 |     TABLE ACCESS FULL      | MT                          | 80000 |  1015K|    63  (13)| 00:00:01 |
|   5 |     TABLE ACCESS FULL      | TCOL80                      | 80000 |    45M|  1656   (6)| 00:00:20 |
|   6 |   LOAD AS SELECT           |                             |       |       |            |          |
|   7 |    HASH GROUP BY           |                             |     1 |  1053 |     3  (34)| 00:00:01 |
|   8 |     TABLE ACCESS FULL      | SYS_TEMP_0FD9D664B_1E0163A1 |     1 |  1053 |     2   (0)| 00:00:01 |
|   9 |   LOAD AS SELECT           |                             |       |       |            |          |
|  10 |    HASH GROUP BY           |                             |     1 |  1053 |     3  (34)| 00:00:01 |
|  11 |     TABLE ACCESS FULL      | SYS_TEMP_0FD9D664B_1E0163A1 |     1 |  1053 |     2   (0)| 00:00:01 |
|  12 |   LOAD AS SELECT           |                             |       |       |            |          |
|  13 |    HASH GROUP BY           |                             |     1 |  1053 |     3  (34)| 00:00:01 |
|  14 |     TABLE ACCESS FULL      | SYS_TEMP_0FD9D664B_1E0163A1 |     1 |  1053 |     2   (0)| 00:00:01 |
|  15 |   VIEW                     |                             |     1 |  1079 |     2   (0)| 00:00:01 |
|  16 |    TABLE ACCESS FULL       | SYS_TEMP_0FD9D664C_1E0163A1 |     1 |  1079 |     2   (0)| 00:00:01 |
----------------------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   3 - access("SYS_TBL_$2$"."X1"="SYS_TBL_$1$"."X1")


Statistics
----------------------------------------------------------
         60  recursive calls
       7363  db block gets
      29065  consistent gets
      14331  physical reads
       2768  redo size
      16135  bytes sent via SQL*Net to client
        492  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
         15  rows processed


[ 本帖最后由 hotiice 于 2008-6-26 13:01 编辑 ]


__________________
①②⑧

只看该作者    顶部
 
    

相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有