Oracle autotrace使用说明

一、启用Autotrace功能

  任何以SQL*PLUS连接Session都可以用Autotrace,不过还是要做一些设置的,否则可能报错。

  1、报错示例:

 1 SQL :> set autotrace on;
 2 SP2-0613: Unable to verify PLAN_TABLE format or existence
 3 SP2-0611: Error enabling EXPLAIN report
 4 SP2-0618: Cannot find the Session Identifier. Check PLUSTRACE role is enabled
 5 SP2-0611: Error enabling STATISTICS report
 6 
 7 *******************************************************************************
 8 
 9 SQL> set autotrace on;
10 SP2-0613: 无法验证 PLAN_TABLE 格式或实体
11 SP2-0611: 启用EXPLAIN报告时出现错误
12 SP2-0618: 无法找到会话标识符。启用检查 PLUSTRACE 角色
13 SP2-0611: 启用STATISTICS报告时出现错误

  该错误的主要原因是由于当前用户下没有PLAN_TABLE这张表及相应的PLUSTRACE角色权限。

  2、解决方法:

  2.1、以SYS用户登录:

1 SQL> conn /as sysdba
2 Connected.

  2.2、运行utlxplan.sql($ORACLE_HOME/rdbms/admin下)脚本创建PLAN_TABLE:
  grant all on plan_table to scott;

  2.3、通过执行plustrace.sql($ORACLE_HOME/sqlplus/admin/plustrace.sql)脚本创建plustrace角色:

  grant plustrace to scott;

  grant select any dictionary to scott;

二、设置Autotrace的命令:

序号 命令 解释
1 SET AUTOTRACE OFF 此为默认值,即关闭Autotrace
2 SET AUTOTRACE ON 产生结果集和解释计划并列出统计
3 SET AUTOTRACE ON EXPLAIN 显示结果集和解释计划不显示统计
4 SET AUTOTRACE TRACEONLY 显示解释计划和统计,尽管执行该语句但您将看不到结果集
5 SET AUTOTRACE 只显示统计

  Eg:SET AUTOTRACE ON

        set timing on

        alter session set time_statistics=true;

三、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) 在磁盘上执行的排序量
posted @ 2012-12-14 22:53  I’m Me!  阅读(1817)  评论(0编辑  收藏  举报