zoukankan      html  css  js  c++  java
  • leading--Oracle hint

    SQL>  explain plan for select rowid rid from
      2   scott.emp e where e.empno >100 and e.empno < 1000 and e.deptno in (select deptno from scott.dept where dname like 'a%');

    已解释。

    SQL> SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY(NULL, NULL, 'ADVANCED -PROJECTION'));

    PLAN_TABLE_OUTPUT
    ----------------------------------------------------------------------------------------------------------------------------------------
    Plan hash value: 1465018025
    
    -----------------------------------------------------------------------------------------
    | Id  | Operation                     | Name    | Rows  | Bytes | Cost (%CPU)| Time     |
    -----------------------------------------------------------------------------------------
    |   0 | SELECT STATEMENT              |         |     1 |    32 |     3   (0)| 00:00:01 |
    |   1 |  NESTED LOOPS                 |         |       |       |            |          |
    |   2 |   NESTED LOOPS                |         |     1 |    32 |     3   (0)| 00:00:01 |
    |   3 |    TABLE ACCESS BY INDEX ROWID| EMP     |     1 |    19 |     2   (0)| 00:00:01 |
    |*  4 |     INDEX RANGE SCAN          | PK_EMP  |     1 |       |     1   (0)| 00:00:01 |
    |*  5 |    INDEX UNIQUE SCAN          | PK_DEPT |     1 |       |     0   (0)| 00:00:01 |
    |*  6 |   TABLE ACCESS BY INDEX ROWID | DEPT    |     1 |    13 |     1   (0)| 00:00:01 |
    -----------------------------------------------------------------------------------------
    
    Query Block Name / Object Alias (identified by operation id):
    -------------------------------------------------------------
    
       1 - SEL$5DA710D3
       3 - SEL$5DA710D3 / E@SEL$1
       4 - SEL$5DA710D3 / E@SEL$1
       5 - SEL$5DA710D3 / DEPT@SEL$2
       6 - SEL$5DA710D3 / DEPT@SEL$2
    
    Outline Data
    -------------
    
      /*+
          BEGIN_OUTLINE_DATA
          NLJ_BATCHING(@"SEL$5DA710D3" "DEPT"@"SEL$2")
          USE_NL(@"SEL$5DA710D3" "DEPT"@"SEL$2")
          LEADING(@"SEL$5DA710D3" "E"@"SEL$1" "DEPT"@"SEL$2")
          INDEX(@"SEL$5DA710D3" "DEPT"@"SEL$2" ("DEPT"."DEPTNO"))
          INDEX_RS_ASC(@"SEL$5DA710D3" "E"@"SEL$1" ("EMP"."EMPNO"))
          OUTLINE(@"SEL$2")
          OUTLINE(@"SEL$1")
          UNNEST(@"SEL$2")
          OUTLINE_LEAF(@"SEL$5DA710D3")
          ALL_ROWS
          DB_VERSION('11.2.0.1')
          OPTIMIZER_FEATURES_ENABLE('11.2.0.1')
          IGNORE_OPTIM_EMBEDDED_HINTS
          END_OUTLINE_DATA
      */
    
    Predicate Information (identified by operation id):
    ---------------------------------------------------
    
       4 - access("E"."EMPNO">100 AND "E"."EMPNO"<1000)
       5 - access("E"."DEPTNO"="DEPTNO")
       6 - filter("DNAME" LIKE 'a%')

    已选择50行。

    SQL>  explain plan for select /*+leading(DEPT@SEL$2)*/rowid rid from
      2   scott.emp e where e.empno >100 and e.empno < 1000 and e.deptno in (select deptno from scott.dept where dname like 'a%');

    已解释。

    SQL> SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY(NULL, NULL, 'ADVANCED -PROJECTION'));

    PLAN_TABLE_OUTPUT
    ----------------------------------------------------------------------------------------------------------------------------------------
    Plan hash value: 817787759
    
    -----------------------------------------------------------------------------------------
    | Id  | Operation                     | Name    | Rows  | Bytes | Cost (%CPU)| Time     |
    -----------------------------------------------------------------------------------------
    |   0 | SELECT STATEMENT              |         |     1 |    32 |     5  (20)| 00:00:01 |
    |   1 |  MERGE JOIN                   |         |     1 |    32 |     5  (20)| 00:00:01 |
    |*  2 |   TABLE ACCESS BY INDEX ROWID | DEPT    |     1 |    13 |     2   (0)| 00:00:01 |
    |   3 |    INDEX FULL SCAN            | PK_DEPT |     4 |       |     1   (0)| 00:00:01 |
    |*  4 |   SORT JOIN                   |         |     1 |    19 |     3  (34)| 00:00:01 |
    |   5 |    TABLE ACCESS BY INDEX ROWID| EMP     |     1 |    19 |     2   (0)| 00:00:01 |
    |*  6 |     INDEX RANGE SCAN          | PK_EMP  |     1 |       |     1   (0)| 00:00:01 |
    -----------------------------------------------------------------------------------------
    
    Query Block Name / Object Alias (identified by operation id):
    -------------------------------------------------------------
    
       1 - SEL$5DA710D3
       2 - SEL$5DA710D3 / DEPT@SEL$2
       3 - SEL$5DA710D3 / DEPT@SEL$2
       5 - SEL$5DA710D3 / E@SEL$1
       6 - SEL$5DA710D3 / E@SEL$1
    
    Outline Data
    -------------
    
      /*+
          BEGIN_OUTLINE_DATA
          USE_MERGE(@"SEL$5DA710D3" "E"@"SEL$1")
          LEADING(@"SEL$5DA710D3" "DEPT"@"SEL$2" "E"@"SEL$1")
          INDEX_RS_ASC(@"SEL$5DA710D3" "E"@"SEL$1" ("EMP"."EMPNO"))
          INDEX(@"SEL$5DA710D3" "DEPT"@"SEL$2" ("DEPT"."DEPTNO"))
          OUTLINE(@"SEL$2")
          OUTLINE(@"SEL$1")
          UNNEST(@"SEL$2")
          OUTLINE_LEAF(@"SEL$5DA710D3")
          ALL_ROWS
          DB_VERSION('11.2.0.1')
          OPTIMIZER_FEATURES_ENABLE('11.2.0.1')
          IGNORE_OPTIM_EMBEDDED_HINTS
          END_OUTLINE_DATA
      */
    
    Predicate Information (identified by operation id):
    ---------------------------------------------------
    
       2 - filter("DNAME" LIKE 'a%')
       4 - access("E"."DEPTNO"="DEPTNO")
           filter("E"."DEPTNO"="DEPTNO")
       6 - access("E"."EMPNO">100 AND "E"."EMPNO"<1000)
    
    已选择50行。

    SQL>  explain plan for select /*+leading(DEPT)*/rowid rid from
      2   scott.emp e where e.empno >100 and e.empno < 1000 and e.deptno in (select deptno from scott.dept where dname like 'a%');

    已解释。

    SQL> SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY(NULL, NULL, 'ADVANCED -PROJECTION'));

    PLAN_TABLE_OUTPUT
    ----------------------------------------------------------------------------------------------------------------------------------------
    Plan hash value: 817787759
    
    -----------------------------------------------------------------------------------------
    | Id  | Operation                     | Name    | Rows  | Bytes | Cost (%CPU)| Time     |
    -----------------------------------------------------------------------------------------
    |   0 | SELECT STATEMENT              |         |     1 |    32 |     5  (20)| 00:00:01 |
    |   1 |  MERGE JOIN                   |         |     1 |    32 |     5  (20)| 00:00:01 |
    |*  2 |   TABLE ACCESS BY INDEX ROWID | DEPT    |     1 |    13 |     2   (0)| 00:00:01 |
    |   3 |    INDEX FULL SCAN            | PK_DEPT |     4 |       |     1   (0)| 00:00:01 |
    |*  4 |   SORT JOIN                   |         |     1 |    19 |     3  (34)| 00:00:01 |
    |   5 |    TABLE ACCESS BY INDEX ROWID| EMP     |     1 |    19 |     2   (0)| 00:00:01 |
    |*  6 |     INDEX RANGE SCAN          | PK_EMP  |     1 |       |     1   (0)| 00:00:01 |
    -----------------------------------------------------------------------------------------
    
    Query Block Name / Object Alias (identified by operation id):
    -------------------------------------------------------------
    
       1 - SEL$5DA710D3
       2 - SEL$5DA710D3 / DEPT@SEL$2
       3 - SEL$5DA710D3 / DEPT@SEL$2
       5 - SEL$5DA710D3 / E@SEL$1
       6 - SEL$5DA710D3 / E@SEL$1
    
    Outline Data
    -------------
    
      /*+
          BEGIN_OUTLINE_DATA
          USE_MERGE(@"SEL$5DA710D3" "E"@"SEL$1")
          LEADING(@"SEL$5DA710D3" "DEPT"@"SEL$2" "E"@"SEL$1")
          INDEX_RS_ASC(@"SEL$5DA710D3" "E"@"SEL$1" ("EMP"."EMPNO"))
          INDEX(@"SEL$5DA710D3" "DEPT"@"SEL$2" ("DEPT"."DEPTNO"))
          OUTLINE(@"SEL$2")
          OUTLINE(@"SEL$1")
          UNNEST(@"SEL$2")
          OUTLINE_LEAF(@"SEL$5DA710D3")
          ALL_ROWS
          DB_VERSION('11.2.0.1')
          OPTIMIZER_FEATURES_ENABLE('11.2.0.1')
          IGNORE_OPTIM_EMBEDDED_HINTS
          END_OUTLINE_DATA
      */
    
    Predicate Information (identified by operation id):
    ---------------------------------------------------
    
       2 - filter("DNAME" LIKE 'a%')
       4 - access("E"."DEPTNO"="DEPTNO")
           filter("E"."DEPTNO"="DEPTNO")
       6 - access("E"."EMPNO">100 AND "E"."EMPNO"<1000)
    
    已选择50行。
  • 相关阅读:
    Dubbo与Zookeeper、SpringMVC整合和利用(负载均衡、容错)
    英语每日阅读---2、越来越多人反对人工智能参战
    新东方雅思词汇---6.3、brilli
    智课雅思词汇---二十五、形容词后缀-ate-fic-ose-ulent-olent-ous-ulous-y
    英语每日写作---1、但是,人们在吹口哨时做得更好
    英语每日阅读---1、科学美国人60秒:如果觉得唱歌很难 那就吹口哨吧
    线段覆盖长度
    智课雅思词汇---二十四、形容词后缀-al-ial-ar-ary-ic-id-ish-ile-ine-oid-ory
    智课雅思词汇---二十三、动词性后缀-ate-fy-ish-ize
    iscroll.js的简单使用方法(总结)
  • 原文地址:https://www.cnblogs.com/princessd8251/p/3537452.html
Copyright © 2011-2022 走看看