ITPub博客

首页 > Linux操作系统 > Linux操作系统 > autotrace用法总结

autotrace用法总结

原创 Linux操作系统 作者:haha牛 时间:2012-05-11 15:22:41 0 删除 编辑
对一条SQL语句生成执行计划,可以采用的方法有:使用explain plan或者sql Developer按F5或者采用AUTOTRACE。
其中AUTOTRACE是一项SQL*Plus功能,自动跟踪为SQL语句生成一个执行计划并且提供与该语句的处理有关的统计。
AUTOTRACE的好处是您不必设置跟踪文件的格式,并且它将自动为SQL语句显示执行计划。然而AUTOTRACE分析和执行
语句;而EXPLAIN PLAN仅分析语句。
一、使用前设置及 Autotrace 授权
1.任何以 SQL*PLUS 连接的 session 都可以用 Autotrace ,不过还是要做一些设置的,否则可能报错。
报错示例:
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
该错误的的主要原因是当前用户下没有 PLAN_TABLE 这张表及相应的 PLUSTRACE 角色权限。

2.通过以下方法可以把Autotrace的权限授予Everyone,如果你需要限制Autotrace权限,可以把对public的授权改为对特定user的授权。
C:\Documents and Settings\zhaoss> sqlplus / as sysdba
SQL> @?\rdbms\admin\utlxplan    --创建 PLAN_TABLE表
SQL> create public synonym plan_table for plan_table;   --创建同义词
SQL> grant all on plan_table to public ;
SQL> @?\sqlplus\admin\plustrce --创建角色并为角色赋权限
SQL> drop role 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

DBA用户首先被授予了plustrace 角色,然后我们可以把 plustrace 授予 public ;这样所有用户都将拥有 plustrace 角色的权限.
SQL> grant plustrace to public ;

二、set autotrace语法及选项的说明

1.用法:SET AUTOT[RACE] {OFF | ON | TRACE[ONLY]} [EXP[LAIN]] [STAT[ISTICS]]
OPTION说明
SET AUTOTRACE OFF           此为默认值,即关闭Autotrace
SET AUTOTRACE ON            同时输出执行结果以及统计信息和执行计划信息。
SET AUTOTRACE TRACEONLY     不显示命令的执行结果,显示执行计划和统计信息,但在traceonly的后面仍然可以追加explain或者
statistics,和set autotrace on [explain|statistics]很像,但是不显示执行结果。
SET AUTOTRACE ON EXPLAIN    只显示执行结果和执行计划,不显示统计信息。
SET AUTOTRACE ON STATISTICS 只显示执行结果和统计信息,不显示执行计划。

2.AUTOTRACE Statistics 常用列解释
db block gets        从buffer cache中读取的block的数量
consistent gets      从buffer cache中读取的undo数据的block的数量
physical reads       从磁盘读取的block的数量
redo size            DML 生成的redo的大小
sorts (memory)       在内存执行的排序量
sorts (disk)         在磁盘上执行的排序量

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

下一篇: oracle的启动过程
请登录后发表评论 登录
全部评论

注册时间:2010-04-04

  • 博文量
    102
  • 访问量
    306874