在Oracle中启用AutoTrace查看SQL执行计划
2008-09-04 12:50:30 来源:WEB开发网通过以下方法可以把Autotrace的权限授予Everyone,
如果你需要限制Autotrace权限,可以把对public的授权改为对特定user的授权。
D:oracleora92>sqlplus/nolog
SQL*Plus:Release9.2.0.1.0-Productionon星期二6月315:16:032003
Copyright(c)1982,2002,OracleCorporation.Allrightsreserved.
SQL>connectsysassysdba
请输入口令:
已连接。
SQL>@?rdbmsadminutlxplan
表已创建。
SQL>createpublicsynonymplan_tableforplan_table;
同义词已创建。
SQL>grantallonplan_tabletopublic;
授权成功。
SQL>@?sqlplusadminplustrce
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几个常用选项的说明:
SET AUTOTRACE OFF ---------------- 不生成AUTOTRACE 报告,这是缺省模式
SET AUTOTRACE ON EXPLAIN ------ AUTOTRACE只显示优化器执行路径报告
SET AUTOTRACE ON STATISTICS -- 只显示执行统计信息
SET AUTOTRACE ON ----------------- 包含执行计划和统计信息
SET AUTOTRACE TRACEONLY ------ 同set autotrace on,但是不显示查询输出
SQL>setautotracetraceonly
SQL>selecttable_namefromuser_tables;
已选择98行。
已用时间: 00: 00: 00.04
executionPlan
----------------------------------------------------------
0selectSTATEMENTptimizer=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
1389consistentgets
0physicalreads
0redosize
2528bytessentviaSQL*Nettoclient
569bytesreceivedviaSQL*Netfromclient
8SQL*Netroundtripsto/fromclient
0sorts(memory)
0sorts(disk)
98rowsprocessed
SQL>
补充一下在10g中的用法
在10g中带有plan_table这张表,但是将名字改为了plan_table$
只需$ORACLE_HOME/sqlplus/admin/plustrce.sql创建plustrace角色
grant plustrace to public
- ››oracle 恢复误删除的表和误更新的表
- ››Oracle分页查询排序数据重复问题
- ››Oracle创建dblink报错:ORA-01017、ORA-02063解决
- ››Oracle 提高SQL执行效率的方法
- ››Oracle 动态查询,EXECUTE IMMEDIATE select into...
- ››Oracle 11g必须开启的服务及服务详细介绍
- ››oracle性能34条优化技巧
- ››oracle数据库生成随机数的函数
- ››启用Win 7家庭版的Administrator账户
- ››Oracle 数据库表空间容量调整脚本
- ››oracle单库彻底删除干净的方法
- ››Oracle创建表空间、创建用户以及授权、查看权限
更多精彩
赞助商链接