SQL> set autotrace traceonly explain
SP2-0613: 无法验证 PLAN_TABLE 格式或实体
SP2-0611: 启用EXPLAIN报告时出错
解决方法:
1. 以SYS用户登录
CONNECT / @ as SYSDBA ;
1. 创建PLAN_TABLE(如果未创建)
运行utlxplan.sql(ORACLE_HOME/rdbms/admin下)脚本;
2. 创建plustrace角色(如果未创建)
执行plustrce.sql(ORACLE_HOME/sqlplus/admin/plustrce.sql)脚本;
3. 将plustrace role赋给当前用户
grant plustrace to scott;或grant plustrace to public;
具体操作
1、创建基础表
运行$ORACLE_HOME/rdbms/admin/utlxplan脚本来创建plan_table
scott@ORCL> conn system/redhat --使用system帐户登陆
Connected.
system@ORCL> start $ORACLE_HOME/rdbms/admin/utlxplan --执行utlxplan脚本
Table created.
system@ORCL> create public synonym plan_table for plan_table; --为表plan_table创建公共同义词
Synonym created.
system@ORCL> grant all on plan_table to public; --将同义词表plan_table授予给所有用户
Grant succeeded.
2、创建角色
运行$ORACLE_HOME/sqlplus/admin/plustrce.sql脚本
system@ORCL> conn / as sysdba --使用sysdba帐户登陆
onnected.
sys@ORCL> start $ORACLE_HOME/sqlplus/admin/plustrce.sql --执行创建角色的脚本
sys@ORCL> create role plustrace;
Role created.
sys@ORCL>
sys@ORCL> grant select on v_$sesstat to plustrace;
Grant succeeded.
sys@ORCL> grant select on v_$statname to plustrace;
Grant succeeded.
sys@ORCL> grant select on v_$mystat to plustrace;
Grant succeeded.
sys@ORCL> grant plustrace to dba with admin option;
Grant succeeded.
设置Autotrace的命令
序号 列名 解释
set autotrace off : 缺省值,将不生成autotrace 报告
set autotrace on : 包含执行计划和统计信息
set autotrace traceonly : 等同于set autotrace on,但不显示查询输出的结果
set autotrace on explain : 只显示优化器执行路径报告
set autotrace on statistics : 只显示执行统计信息
Autotrace执行计划的各列的涵义
序号 列名 解释
1 ID_PLUS_EXP 每一步骤的行号
2 PARENT_ID_PLUS_EXP 每一步的Parent的级别号
3 PLAN_PLUS_EXP 实际的每步
4 OBJECT_NODE_PLUS_EXP Dblink或并行查询时才会用到
AUTOTRACE Statistics常用列解释
序号 列名 解释
1 db block gets 从buffer cache中读取的block的数量
2 consistent gets 从buffer cache中读取的undo数据的block的数量
3 physical reads 从磁盘读取的block的数量
4 redo size DML生成的redo的大小
5 sorts (memory) 在内存执行的排序量
6 sorts (disk) 在磁盘上执行的排序量