ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Oracle autotrace

Oracle autotrace

原创 Linux操作系统 作者:philwood2010 时间:2010-09-07 16:10:14 0 删除 编辑

在SQL*Plus中,你可以通过设置autotrace选项来在执行SQL命令的同进,自动的获得语句的执行计划和附加的统计信息。AUTOTRACE是一个很出色的Oracle SQL语句的诊断工具,与Explain plan不同的是这条SQL是实际执行了的,同时AUTOTRACE使用起来也极为方便。

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

1、报错示例:
SQL :> set autotrace on;
SP2-0613: Unable to verify PLAN_TABLE format or existence
SP2-0611: Error enabling EXPLAIN report
SP2-0618: Cannot find the Session Identifier. Check PLUSTRACE role is enabled
SP2-0611: Error enabling STATISTICS report

2、解决方法:

a.以SYS用户运行plustrce.sql脚本

$ORACLE_HOME/sqlplus/admin

oracle>sqlplus '/ as sysdba';
SQL>@plustrce.sql

b.给任何想使用Autotrace的用户授PLUSTRACE权限。

SQL>grant plustrace to hr;

c.同时被授权的用户比如hr用户的PLAN_TABLE这个表必须存在。如果不存在这样:

$ORACLE_HOME/rdbms/admin

oracle>sqlplus hr/hr; --hr为示例用户
SQL>@utlxplan.sql

二、设置Autotrace的命令。

序号 命令 解释
1 SET AUTOTRACE OFF 此为默认值,即关闭Autotrace
2 SET AUTOTRACE ON EXPLAIN 只显示执行计划
3 SET AUTOTRACE ON STATISTICS 只显示执行的统计信息
4 SET AUTOTRACE ON 包含2,3两项内容
5 SET AUTOTRACE TRACEONLY 与ON相似,但不显示语句的执行结果。

三、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) 在内存执行的排序量
7 sorts (disk) 在磁盘上执行的排序量

注: 假如连接远程数据库时,执行计划分析的时候是使用远程的utlxplan.sql ,因此假如远程数据库没有执行utlxplan.sql,则会报错.

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/24032200/viewspace-672893/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: ORACLE的日志管理
请登录后发表评论 登录
全部评论

注册时间:2010-09-03

  • 博文量
    22
  • 访问量
    31326