是不是最里面往外面看,最里面的先执行,然后同级别的话,从后向前的顺序执行扫描
--------------------------------------------------------------------------------------------------
| Id  | Operation                | Name                  | Rows  | Bytes | Cost (%CPU)| Time     |
--------------------------------------------------------------------------------------------------
|   0 | INSERT STATEMENT         |                       |     2 |  1272 |    15  (67)| 00:00:01 |
|   1 |  LOAD TABLE CONVENTIONAL | RPT_VOD_CATEGORY_TEMP |       |       |            |          |
|   2 |   SORT UNIQUE            |                       |     2 |  1272 |    15  (67)| 00:00:01 |
|   3 |    UNION-ALL             |                       |       |       |            |          |
|*  4 |     HASH JOIN            |                       |     1 |   570 |     6  (17)| 00:00:01 |
|   5 |      TABLE ACCESS FULL   | TBL_IPTV_VOD          |     1 |   260 |     2   (0)| 00:00:01 |
|   6 |      TABLE ACCESS FULL   | RPT_CONTENT_CATEGORY  |   551 |   166K|     3   (0)| 00:00:01 |
|*  7 |     HASH JOIN            |                       |     1 |   702 |     8  (13)| 00:00:01 |
|   8 |      MERGE JOIN CARTESIAN|                       |     1 |   570 |     5   (0)| 00:00:01 |
|   9 |       TABLE ACCESS FULL  | TBL_IPTV_VOD          |     1 |   260 |     2   (0)| 00:00:01 |
|  10 |       BUFFER SORT        |                       |   551 |   166K|     3   (0)| 00:00:01 |
|  11 |        TABLE ACCESS FULL | RPT_CONTENT_CATEGORY  |   551 |   166K|     3   (0)| 00:00:01 |
|  12 |      TABLE ACCESS FULL   | TBL_VOD_MAPPING       |     1 |   132 |     2   (0)| 00:00:01 |
--------------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
   4 - access("X"."FOREIGNSN"="Y"."CONTENT_ID")
   7 - access("A"."FOREIGNSN"="B"."VODID" AND "B"."PARENT_VODID"="C"."CONTENT_ID")

解决方案 »

  1.   

    同级别同时扫描说法不正确Execution Plan
    ----------------------------------------------------------
    0 **SELECT STATEMENT Optimizer=CHOOSE (Cost=3 Card=8 Bytes=248)
    1 0 **HASH JOIN (Cost=3 Card=8 Bytes=248)
    2 1 ****TABLE ACCESS (FULL) OF 'DEPT' (Cost=1 Card=3 Bytes=36)
    3 1 ****TABLE ACCESS (FULL) OF 'EMP' (Cost=1 Card=16 Bytes=304)左侧的两排数据,前面的是序列号ID,后面的是对应的PID(父ID)。A shortened summary of this is:
    Execution starts with ID=0: SELECT STATEMENT but this is dependand on it's child objects
    So it executes its first child step: ID=1 PID=0 HASH JOIN but this is dependand on it's child objects
    So it executes its first child step: ID=2 PID=1 TABLE ACCESS (FULL) OF 'DEPT'
    Then the second child step: ID=3 PID=2 TABLE ACCESS (FULL) OF 'EMP'

    Rows are returned to the parent step(s) until finished