在一般的优化思想中,都是要尽可能减少嵌套的层数,减少不必要的操作。但是今天发现有的时候并非实际情况却并非如此。
看下面的例子:
SQL> CREATE TABLE T AS SELECT * FROM
DBA_OBJECTS;
表已创建。
SQL> INSERT INTO T SELECT * FROM
T;
已创建32774行。
SQL> INSERT INTO T SELECT * FROM
T;
已创建65548行。
SQL> INSERT INTO T SELECT * FROM
T;
已创建131096行。
SQL> INSERT INTO T SELECT * FROM
T;
已创建262192行。
SQL> COMMIT;
提交完成。
SQL> SET AUTOT TRACE
SQL> SET TIMING ON
SQL> COL PLAN_PLUS_EXP FORMAT A80
SQL> SET LINES 110
SQL> SELECT OBJECT_TYPE, COUNT(DISTINCT CREATED)
2 FROM T
3 GROUP BY OBJECT_TYPE;
已选择34行。
已用时间: 00: 00: 01.31
执行计划----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE
1 0 SO