Oracle AutoTrace

1

AUTOTRACE的使用方法

 

2.1、安装

 

sys用户运行脚本utlxplan.sql 该脚本会创建一张表   plan_table

 

脚本的位置是:

UNIX:$ORACLE_HOME/rdbms/admin/ utlxplan.sql

Windows:%ORACLE_HOME%\rdbms\admin\ultxplan.sql)。

 

[oracle@cuug admin]$ sqlplus / as sysdba

 

SQL> @C:\oracle\ora92\rdbms\admin\utlxplan.sql;

 

SYS @ cuug >@$ORACLE_HOME/rdbms/admin/utlxplan;

 

Table created.

 

SYS @ cuug > create public synonym plan_table for plan_table;

 

Synonym created. --建立同义词 9i

 

SYS @ cuug >grant all on  plan_table to public;

 

Grant succeeded. --授权所有用户

 

 

  

要在数据库中建立一个角色plustrace,sys用户运行脚本plustrce.sql来创建这个角色,

 

脚本目录(UNIX:$ORACLE_HOME/sqlplus/admin, Windows:%ORACLE_HOME%\sqlplus\admin)中;

 

 SYS @ cuug >@$ORACLE_HOME/sqlplus/admi/plustrce.sql;

 

然后将角色plustrace授予需要autotrace的用户;

 

SYS @ cuug >grant plustrace to public;

 

经过以上步骤的设置,就可以在sql*plus中使用autotrace

 

22 使用

 

使用起来非常方便,只要使用一条命令就可以了

 

SYS @ cuug >SET AUTOTRACE ON

 

*autotrace功能只能在SQL*PLUS里使用

 

其他一些使用方法:

 

2.2.1、在SQLPLUS中得到语句总的执行时间

 

SYS @ cuug > set timing on;

 

2.2.2、只显示执行计划--(会同时执行语句得到结果)

 

SQL>set autotrace on explain

 

比如:

 

sql> select count(*) from test;

 

count(*)

 

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

 

4

 

Execution plan

 

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

 

0 select statement ptimitzer=choose (cost=3 card=1)

 

1 0 sort(aggregate)

 

2 1 partition range(all)

 

3 2 table access (full) of 't_test' (cost=3 card=900)

 

 

2.2.3、只显示统计信息---(会同时执行语句得到结果)

 

SQL>set autotrace on statistics;

 

(备注:对于SYS用户,统计信息将会是0

 

2.2.4、显示执行计划,屏蔽执行结果--(但语句实质还执行的

 

SYS @ cuug >set autotrace on traceonly;

 

(备注:同SET AUTOTRACE ON; 只不过不显示结果,显示计划和统计)

 

2.2.5、仅仅显示执行计划,屏蔽其他一切结果--(语句还是执行了)

 

SYS @ cuug >set autotrace  traceonly explain;

 

对于仅仅查看大表的Explain Plan非常管用。

 

2.2.6、关闭

 

SYS @ cuug >set autotrace off;

 

总结:SQLPLUS 下的自动显示功能,在看执行计划中其语句还是会被执行的。尤其在执行UPDATE/DELETE语句时请千万注意,ORACLE是先执行脚本同时显示执行计划的,即使使用set autotrace on traceonly explain;

 

这个时候推荐使用EXPLAIN PLAN FOR来看或者PL/SQL等第三方工具

创建时间:2022-03-30 20:46
浏览量:0