<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Neil的備忘錄

    just do it
    posts - 66, comments - 8, trackbacks - 0, articles - 0

    如何啟用sqlplus的AutoTrace功能

    Posted on 2009-01-10 15:48 Neil's NoteBook 閱讀(361) 評論(0)  編輯  收藏

     AUTOTRACE是一項SQL*Plus功能,自動跟蹤為SQL語句生成一個執(zhí)行計劃并且提供與該語句的處理有關的統(tǒng)計。

       SQL*Plus AUTOTRACE可以用來替代SQL Trace使用,AUTOTRACE的好處是您不必設置跟蹤文件的格式,并且它將自動為SQL語句顯示執(zhí)行計劃。然而,AUTOTRACE分析和執(zhí)行語句;而EXPLAIN PLAN僅分析語句。

       使用AUTOTRACE不會產(chǎn)生跟蹤文件。

     

    一、set autotrace語法及選項的說明

    1、用法:SET AUTOT[RACE] {OFF | ON | TRACE[ONLY]} [EXP[LAIN]] [STAT[ISTICS]]

    OPTION說明

    SET AUTOTRACE OFF          此為默認值,即關閉Autotrace

    SET AUTOTRACE ON            同時輸出執(zhí)行結(jié)果以及統(tǒng)計信息和執(zhí)行計劃信息。

    SET AUTOTRACE ON EXPLAIN   只打開執(zhí)行計劃報表,顯示命令結(jié)果,不顯示統(tǒng)計信息。

    SET AUTOTRACE ON STATISTICS 只打開統(tǒng)計信息報表,顯示命令結(jié)果,不顯示執(zhí)行計劃。

    SET AUTOTRACE TRACEONLY     不顯示命令的執(zhí)行結(jié)果,顯示執(zhí)行計劃和統(tǒng)計信息,但在traceonly的后面仍然可以追加explain或者statistics,等同于set autotrace on [explain|statistics]但是不顯示執(zhí)行結(jié)果。

    2Autotrace執(zhí)行計劃的各列的涵義

    ID_PLUS_EXP            每一步驟的行號

    PARENT_ID_PLUS_EXP     每一步的Parent的級別號

    PLAN_PLUS_EXP          實際的每步

    OBJECT_NODE_PLUS_EXP   Dblink或并行查詢時才會用到

    3AUTOTRACE Statistics常用列解釋

    db block gets      buffer cache中讀取的block的數(shù)量

    consistent gets    buffer cache中讀取的undo數(shù)據(jù)的block的數(shù)量

    physical reads      從磁盤讀取的block的數(shù)量

    redo sizeDML       生成的redo的大小

    sorts (memory)      在內(nèi)存執(zhí)行的排序量

    sorts (disk)        在磁盤上執(zhí)行的排序量

     

    二、使用前設置及Autotrace授權

    1、任何以SQL*PLUS連接的session都可以用Autotrace,不過還是要做一些設置的,否則可能報錯。

    報錯示例:

    SQL:> set autotrace on;

    SP2-0613: Unable to verify PLAN_TABLE format or existence

    SP2-0611: Error enabling EXPLAIN report

    SP2-0618: Cannot find the Session Identifier. Check PLUSTRACE role is enabled

    SP2-0611: Error enabling STATISTICS report

    該錯誤的的主要原因是由于當前用戶下沒有PLAN_TABLE這張表及相應的PLUSTRACE角色權限。

    2、 通過以下方法可以把Autotrace的權限授予Everyone,如果你需要限制Autotrace權限,可以把對public的授權改為對特定user的授權。

    D:\oracle\ora92>sqlplus /nolog

    SQL> connect sys as sysdba

    SQL> @?\rdbms\admin\utlxplan    --表已創(chuàng)建。

    SQL> create public synonym plan_table for plan_table;   --同義詞已創(chuàng)建。

    SQL> grant all on plan_table to public ;

    SQL> @?\sqlplus\admin\plustrce

    SQL> drop role plustrace;

    SQL> create role plustrace;

    SQL> grant select on v_$sesstat to plustrace;

    SQL> grant select on v_$statname to plustrace;

    SQL> grant select on v_$session to plustrace;

    SQL> grant plustrace to dba with admin option;

    SQL> set echo off

     

      DBA用戶首先被授予了plustrace角色,然后我們可以把plustrace授予public;這樣所有用戶都將擁有plustrace角色的權限.

    SQL> grant plustrace to public ;

     

    三、使用AutoTrace的功能

    SQL> connect eqsp/eqsp

    SQL> set autotrace on

    SQL> set timing on

    SQL> set autotrace traceonly

     

    SQL> select table_name from user_tables;

    已選擇98行。

    已用時間: 00: 00: 00.04

    Execution Plan

    ----------------------------------------------------------

    0 SELECT STATEMENT ptimizer=CHOOSE

    1 0 NESTED LOOPS

    2 1 NESTED LOOPS (OUTER)

    3 2 NESTED LOOPS (OUTER)

    4 3 NESTED LOOPS (OUTER)

    5 4 NESTED LOOPS (OUTER)

    6 5 NESTED LOOPS

    7 6 TABLE ACCESS (BY INDEX ROWID) OF 'OBJ$'

    8 7 INDEX (RANGE SCAN) OF 'I_OBJ2' (UNIQUE)

    9 6 TABLE ACCESS (CLUSTER) OF 'TAB$'

    10 9 INDEX (UNIQUE SCAN) OF 'I_OBJ#' (NON-UNIQUE)

    11 5 TABLE ACCESS (BY INDEX ROWID) OF 'OBJ$'

    12 11 INDEX (UNIQUE SCAN) OF 'I_OBJ1' (UNIQUE)

    13 4 INDEX (UNIQUE SCAN) OF 'I_OBJ1' (UNIQUE)

    14 3 TABLE ACCESS (CLUSTER) OF 'USER$'

    15 14 INDEX (UNIQUE SCAN) OF 'I_USER#' (NON-UNIQUE)

    16 2 TABLE ACCESS (CLUSTER) OF 'SEG$'

    17 16 INDEX (UNIQUE SCAN) OF 'I_FILE#_BLOCK#' (NON-UNIQUE)

    18 1 TABLE ACCESS (CLUSTER) OF 'TS$'

    19 18 INDEX (UNIQUE SCAN) OF 'I_TS#' (NON-UNIQUE)

     

    Statistics

    ----------------------------------------------------------

    0 recursive calls

    0 db block gets

    1389 consistent gets

    0 physical reads

    0 redo size

    2528 bytes sent via SQL*Net to client

    569 bytes received via SQL*Net from client

    8 SQL*Net roundtrips to/from client

    0 sorts (memory)

    0 sorts (disk)

    98 rows processed

     

    -The End-


    原文地址:http://space.itpub.net/12330444/viewspace-251837


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導航:
     
    主站蜘蛛池模板: 亚洲国产精品第一区二区三区| 免费看国产成年无码AV片| 亚洲精品乱码久久久久久蜜桃| 亚洲av永久无码精品网址| 在线观看免费成人| 亚洲av无码无线在线观看| 国产大片91精品免费看3| 美景之屋4在线未删减免费 | 精品国产污污免费网站入口在线| av在线亚洲欧洲日产一区二区| 成人免费观看男女羞羞视频| 日韩精品亚洲aⅴ在线影院| 日本在线看片免费| 精品日韩亚洲AV无码| aa级一级天堂片免费观看| 学生妹亚洲一区二区| 四虎精品亚洲一区二区三区| 国产精品内射视频免费| 亚洲福利视频导航| 国产桃色在线成免费视频| 豆国产96在线|亚洲| 亚洲日本一区二区三区在线| 外国成人网在线观看免费视频| 亚洲国产精品久久网午夜| 日韩毛片免费在线观看| 久久国产精品免费| 亚洲精品亚洲人成在线麻豆| 永久黄网站色视频免费直播| 国产免费区在线观看十分钟 | 亚洲七七久久精品中文国产| 国产色爽免费无码视频| 亚洲女人影院想要爱| 国产免费观看青青草原网站| 13小箩利洗澡无码视频网站免费| 亚洲天堂电影在线观看| 亚洲另类激情专区小说图片| 男人的天堂网免费网站| 亚洲熟女综合一区二区三区| 在线亚洲精品自拍| 久久WWW色情成人免费观看| 中国一级特黄高清免费的大片中国一级黄色片 |