1. <var id="fe6gj"></var>

    <rp id="fe6gj"><nav id="fe6gj"></nav></rp>

    <noframes id="fe6gj"><cite id="fe6gj"></cite>

    <ins id="fe6gj"><button id="fe6gj"><p id="fe6gj"></p></button></ins>
    1. <tt id="fe6gj"><i id="fe6gj"><sub id="fe6gj"></sub></i></tt>
        始創于2000年 股票代碼:831685
        咨詢熱線:0371-60135900 注冊有禮 登錄
        • 掛牌上市企業
        • 60秒人工響應
        • 99.99%連通率
        • 7*24h人工
        • 故障100倍補償
        您的位置: 網站首頁 > 幫助中心>文章內容

        Oracle執行計劃與統計信息的一些總結

        發布時間:  2012/8/26 15:26:32

        2010-07-01 15:03
        1、SET AUTOTRACE ON EXPLAIN
        (set autot on exp)
        SQLPLUS的命令,在執行SQL語句的同時顯示執行計劃,設置EXP(LAIN)的目的是只顯示執行計劃而不顯示統計信息.。-
         

        2、SQL>explain plan for select ````````;
        SQL>select * from table(dbms_xplan.display);

        執行了set autotrace on explain語句之后,接下來的查詢、插入、更新、刪除語句就會顯示執行計劃,直到執行“set autotrace off;”語句。如果是設置了set autotrace on,除了會顯示執行計劃之外,還會顯示一些有用的統計信息。

        執行EXPLAIN PLAN FOR 可以只顯示執行計劃,然后執行如下查詢

        SQL> select * from table(dbms_xplan.display);

        如:

        SQL> explain plan for select * from emp where deptno='20';

        Explained.

        SQL> select * from table(dbms_xplan.display);

        PLAN_TABLE_OUTPUT
        --------------------------------------------------------------------------------
        Plan hash value: 3956160932

        --------------------------------------------------------------------------
        | Id   | Operation          | Name | Rows   | Bytes | Cost (%CPU)| Time      |
        --------------------------------------------------------------------------
        |    0 | SELECT STATEMENT   |       |      5 |    150 |      3    (0)| 00:00:01 |
        |*   1 |   TABLE ACCESS FULL| EMP   |      5 |    150 |      3    (0)| 00:00:01 |
        --------------------------------------------------------------------------

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

        PLAN_TABLE_OUTPUT
        --------------------------------------------------------------------------------

            1 - filter("DEPTNO"=20)

        13 rows selected.

        3、SQL>exec dbms_stats.delete_table_stats(USER,'表');(刪除表的統計信息)

        SQL>exec dbms_stats.gather_table_stats(USER,'表',METHOD_OPT=>'FOR ALL COLUMNS SIZE 100')(收集表的統計信息)

        4、AUTOTRACE的幾個常用選項  

               set autotrace off ---------------- 不生成autotrace 報告,這是缺省模式
        set autotrace on explain ------ autotrace只顯示優化器執行路徑報告
        set autotrace on statistics -- 只顯示執行統計信息
        set autotrace on ----------------- 包含執行計劃和統計信息
        set autotrace traceonly ------ 同set autotrace on,但是不顯示查詢輸


        (1). set autotrace on explain; --只顯示執行計劃
        SQL> set autotrace on explain;
        SQL>

        select count(*) from dba_objects;

        COUNT(*)
        ----------
            31820

        Execution Plan
        ----------------------------------------------------------
          0      SELECT STATEMENT Optimizer=CHOOSE
          1    0   SORT (AGGREGATE)
          2    1     VIEW OF 'DBA_OBJECTS'
          3    2       UNION-ALL
          4    3         FILTER
          5    4           TABLE ACCESS (BY INDEX ROWID) OF 'OBJ$'
          6    5             NESTED LOOPS
          7    6               TABLE ACCESS (FULL) OF 'USER$'
          8    6               INDEX (RANGE SCAN) OF 'I_OBJ2' (UNIQUE)
          9    4           TABLE ACCESS (BY INDEX ROWID) OF 'IND$'
        10    9             INDEX (UNIQUE SCAN) OF 'I_IND1' (UNIQUE)
        11    3         NESTED LOOPS
        12   11           TABLE ACCESS (FULL) OF 'USER$'
        13   11           INDEX (RANGE SCAN) OF 'I_LINK1' (NON-UNIQUE)

        (2). set autotrace on statistics;--只顯示統計信息
        SQL> set autotrace on statistics;
        SQL> select count(*) from dba_objects;

        COUNT(*)
        ----------
            31820

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

        (3). set autotrace traceonly;--同set autotrace on 只是不顯示查詢輸出
        SQL> set autotrace traceonly;
        SQL> select count(*) from dba_objects;

        Execution Plan
        ----------------------------------------------------------
          0      SELECT STATEMENT Optimizer=CHOOSE
          1    0   SORT (AGGREGATE)
          2    1     VIEW OF 'DBA_OBJECTS'
          3    2       UNION-ALL
          4    3         FILTER
          5    4           TABLE ACCESS (BY INDEX ROWID) OF 'OBJ$'
          6    5             NESTED LOOPS
          7    6               TABLE ACCESS (FULL) OF 'USER$'
         8    6               INDEX (RANGE SCAN) OF 'I_OBJ2' (UNIQUE)
          9    4           TABLE ACCESS (BY INDEX ROWID) OF 'IND$'
        10    9             INDEX (UNIQUE SCAN) OF 'I_IND1' (UNIQUE)
        11    3         NESTED LOOPS
        12   11           TABLE ACCESS (FULL) OF 'USER$'
        13   11           INDEX (RANGE SCAN) OF 'I_LINK1' (NON-UNIQUE)

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

        (4).set autotrace traceonly explain;--比較實用的選項,只顯示執行計劃,但是與set autotrace on explain;相比不會執行語句,對于僅僅查看大表的Explain Plan非常管用。
        SQL> set autotrace traceonly explain;
        SQL> select * from dba_objects;
        已用時間: 00: 00: 00.00

        Execution Plan
        ----------------------------------------------------------
          0      SELECT STATEMENT Optimizer=CHOOSE
          1    0   VIEW OF 'DBA_OBJECTS'
          2    1     UNION-ALL
          3    2       FILTER
          4    3         TABLE ACCESS (BY INDEX ROWID) OF 'OBJ$'
          5    4           NESTED LOOPS
          6    5             TABLE ACCESS (FULL) OF 'USER$'
          7    5             INDEX (RANGE SCAN) OF 'I_OBJ2' (UNIQUE)
          8    3         TABLE ACCESS (BY INDEX ROWID) OF 'IND$'
          9    8           INDEX (UNIQUE SCAN) OF 'I_IND1' (UNIQUE)
        10    2       TABLE ACCESS (BY INDEX ROWID) OF 'LINK$'
        11   10         NESTED LOOPS
        12   11           TABLE ACCESS (FULL) OF 'USER$'
        13   11           INDEX (RANGE SCAN) OF 'I_LINK1' (NON-UNIQUE)

        5、analyze

        analyze table hr.employees compute(estimate) statistics;(compute收集每一行數據的統計信息,比較耗時;estimate收集一部分數據行的統計信息)

        select t.owner,t.table_name,t.tablespace_name,t.blocks,t.empty_blocks,t.avg_space
        from dba_tables t
        where t.owner='HR';


        本文出自:億恩科技【www.endtimedelusion.com】

        服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質保障!--億恩科技[ENKJ.COM]

      1. 您可能在找
      2. 億恩北京公司:
      3. 經營性ICP/ISP證:京B2-20150015
      4. 億恩鄭州公司:
      5. 經營性ICP/ISP/IDC證:豫B1.B2-20060070
      6. 億恩南昌公司:
      7. 經營性ICP/ISP證:贛B2-20080012
      8. 服務器/云主機 24小時售后服務電話:0371-60135900
      9. 虛擬主機/智能建站 24小時售后服務電話:0371-60135900
      10. 專注服務器托管17年
        掃掃關注-微信公眾號
        0371-60135900
        Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權所有  地址:鄭州市高新區翠竹街1號總部企業基地億恩大廈  法律顧問:河南亞太人律師事務所郝建鋒、杜慧月律師   京公網安備41019702002023號
          0
         
         
         
         

        0371-60135900
        7*24小時客服服務熱線

         
         
        av不卡不卡在线观看_最近2018年中文字幕_亚洲欧美一区二区三区_一级A爱做片免费观看国产_日韩在线中文天天更新_伊人中文无码在线