SQL> set autotrace on
Cannot SET AUTOTRACE
可能是当初没有进行设置吧,不过10g好像不用设置,不管他了,按照相关的操作做一遍吧,印象也比较深刻,于是参考eygle的blog,对我的测试环境做了如下操作:
1. create table PLAN_TABLE
D:\oracle\ora92>sqlplus /nolog
SQL> connect / as sysdba
已连接。
SQL>@?\rdbms\admin\utlxplan.sql
表已创建。(create table PLAN_TABLE)
2. create synonym plan_table
SQL> create public synonym plan_table for plan_table;
同义词已创建。
3. grant priv on plan_table
SQL> grant all on plan_table to public/user ;
授权成功。
4. creat role plustrace
SQL>@?\sqlplus\admin\plustrce.sql
SQL>
SQL> drop role plustrace;
drop role plustrace
*
ERROR 位于第 1 行:
ORA-01919: 角色'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
做完授权以后,再次登陆PL/SQL DEVELOPER工具中的COMMAND窗口,执行 set autotrace on还是报错:“cannot set autotrace”,奇怪,怀疑是工具的问题,于是输入cmd,用sqlplus登陆,结果是可以的,操作步骤如下:
SQL> connect leiz/leiz
已连接。
SQL> set autotrace on
所以断定是PL/SQL DEVELOPER工具的问题,google一下,查到一些朋友和我遇到了同样的问题:pl/sql developer并不完全支持所有的sql plus的命令。set autotrace就属于不支持的语句,此外还有show parameters ...,whenever ...等。在这里记录一下。
关于Autotrace几个常用选项的说明:
SET AUTOTRACE OFF ---------------- 不生成AUTOTRACE 报告,这是缺省模式
SET AUTOTRACE ON EXPLAIN ------ AUTOTRACE只显示优化器执行路径报告
SET AUTOTRACE ON STATISTICS -- 只显示执行统计信息
SET AUTOTRACE ON ----------------- 包含执行计划和统计信息
SET AUTOTRACE TRACEONLY ------ 同set autotrace on,但是不显示查询输出
参考文献:
1.http://www.eygle.com/faq/AutoTrace.htm
2.http://topic.csdn.net/t/20050920/14/4281733.html