您的位置:首页 > 数据库 > Oracle

Oracle+9i&10g编程艺术:深入数据库体系结构读书笔记--------三、设置SQL*Plus的AUTOTRACE

2011-07-29 16:21 459 查看
AUTOTRACE是SQL*Plus中一个工具,可以显示所执行查询的解释计划(explainplan)以及所用的资源。这本书中大量使用了AUTOTRACE工具。

F:\oracle\ora92>sqlplus/nolog

SQL*Plus:Release9.2.0.1.0-Productionon星期二6月315:16:032003

Copyright(c)1982,2002,OracleCorporation.Allrightsreserved.

SQL>connectsysassysdba
请输入口令:
已连接。
SQL>@?\rdbms\admin\utlxplan

表已创建。

SQL>createpublicsynonymplan_tableforplan_table;

同义词已创建。

SQL>grantallonplan_tabletopublic;

授权成功。

SQL>@?\sqlplus\admin\plustrce
SQL>
SQL>droproleplustrace;
droproleplustrace
*
ERROR位于第1行:
ORA-01919:角色'PLUSTRACE'不存在

SQL>createroleplustrace;

角色已创建
SQL>
SQL>grantselectonv_$sesstattoplustrace;

授权成功。

SQL>grantselectonv_$statnametoplustrace;

授权成功。

SQL>grantselectonv_$sessiontoplustrace;

授权成功。

SQL>grantplustracetodbawithadminoption;

授权成功。

SQL>
SQL>setechooff

DBA用户首先被授予了plustrace角色,然后我们可以把plustrace授予public
这样所有用户都将拥有plustrace角色的权限.

SQL>grantplustracetopublic;

授权成功。


然后我们就可以使用AutoTrace的功能了.
SQL>connecteqsp/eqsp
已连接。
SQL>setautotraceon
SQL>settimingon
SQL>


关于Autotrace几个常用选项的说明:
SETAUTOTRACEOFF----------------不生成AUTOTRACE报告,这是缺省模式

SETAUTOTRACEONEXPLAIN------AUTOTRACE只显示优化器执行路径报告

SETAUTOTRACEONSTATISTICS--只显示执行统计信息

SETAUTOTRACEON-----------------包含执行计划和统计信息

SETAUTOTRACETRACEONLY------同setautotraceon,但是不显示查询输出
SQL>selecttable_namefromuser_tables;

TABLE_NAME
------------------------------
BONUS
DEPT
DUMMY
EMP
SALGRADE

已用时间:00:00:00.00
ExecutionPlan
----------------------------------------------------------
0SELECTSTATEMENTOptimizer=CHOOSE
10NESTEDLOOPS
21NESTEDLOOPS(OUTER)
32NESTEDLOOPS(OUTER)
43NESTEDLOOPS(OUTER)
54NESTEDLOOPS(OUTER)
65NESTEDLOOPS
76TABLEACCESS(BYINDEXROWID)OF'OBJ
87INDEX(RANGESCAN)OF'I_OBJ2'(UNIQUE)
96TABLEACCESS(CLUSTER)OF'TAB$'
109INDEX(UNIQUESCAN)OF'I_OBJ#'(NON-UNIQUE)
115TABLEACCESS(BYINDEXROWID)OF'OBJ$'
1211INDEX(UNIQUESCAN)OF'I_OBJ1'(UNIQUE)
134INDEX(UNIQUESCAN)OF'I_OBJ1'(UNIQUE)
143TABLEACCESS(CLUSTER)OF'USER$'
1514INDEX(UNIQUESCAN)OF'I_USER#'(NON-UNIQUE)
162TABLEACCESS(CLUSTER)OF'SEG$'
1716INDEX(UNIQUESCAN)OF'I_FILE#_BLOCK#'(NON-UNIQUE)
181TABLEACCESS(CLUSTER)OF'TS$'
1918INDEX(UNIQUESCAN)OF'I_TS#'(NON-UNIQUE
Statistics
----------------------------------------------------------
0recursivecalls
0dbblockgets
73consistentgets
0physicalreads
0redosize
452bytessentviaSQL*Nettoclient
503bytesreceivedviaSQL*Netfromclient
2SQL*Netroundtripsto/fromclient
0sorts(memory)
0sorts(disk)
5rowsprocessed


对于dba用户这样就可以查看执行计划了.但对于没有dba权限的用户,还需要grantselectanydictionarytouser_name;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐