ITPub博客

首页 > Linux操作系统 > Linux操作系统 > sql*plus autotrace 介绍 及 SP2-0618 解决办法 [转载]

sql*plus autotrace 介绍 及 SP2-0618 解决办法 [转载]

原创 Linux操作系统 作者:serapy 时间:2011-03-26 20:49:41 0 删除 编辑

AUTOTRACE是一项 SQL*Plus 功能,自动跟踪为 SQL 语句生成一个执行计划并且提供与该语句的处理有关的统计。SQL*Plus AUTOTRACE 可以用来替代 SQL Trace 使用,AUTOTRACE 的好处是您不必设置跟踪文件的格式,并且它将自动为 SQL 语句显示执行计划。然而,AUTOTRACE 分析和执行语句;而EXPLAIN PLAN仅分析语句。

  使用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

  *******************************************************************************

  SQL> set autotrace on;

  SP2-0613: 无法验证 PLAN_TABLE 格式或实体

  SP2-0611: 启用EXPLAIN报告时出现错误

  SP2-0618: 无法找到会话标识符。启用检查 PLUSTRACE 角色

  SP2-0611: 启用STATISTICS报告时出现错误

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

  2、解决方法:

  A.以SYS用户登录:

  oracle>sqlplus  sys/123 as sysdba;

  B.运行utlxplan.sql(rdbms/admin下) 脚本创建 PLAN_TABLE;

  SQL>@ D:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\utlxplan.sql

  C.通过执行 plustrce.sql(D:\oracle\product\10.2.0\db_1\sqlplus\admin\plustrce.sql)脚本创建 plustrace 角色,这将V$ 视图上的选择权限授予该角色,也将 plustrace 角色授予 DBA 角 色,脚本部份内容如下:

  drop role plustrace;

  create role plustrace;

  grant select on v_$sesstat to plustrace;

  grant select on v_$statname to plustrace;

  grant select on v_$session to plustrace;

  grant plustrace to dba with admin option;

  D.将 plustrace 角色授予当前用户(无 DBA 角色的用户)。或grant plustrace to public;

二、设置Autotrace的命令。

  序号

  命令

  解释

  1

  SET AUTOTRACE OFF

  此为默认值,即关闭Autotrace

  2

  SET AUTOTRACE ON

  产生结果集和解释计划并列出统计

  3

  SET AUTOTRACE ON EXPLAIN

  显示结果集和解释计划不显示统计

  4

  SETAUTOTRACE TRACEONLY

  显示解释计划和统计,尽管执行该语句但您将看不到结果集

  5

  SET AUTOTRACE

  TRACEONLY STATISTICS

  只显示统计

  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)

  在内存执行的排序量

  7

  sorts (disk)

  在磁盘上执行的排序量

source : http://www.examda.com/microsoft/zhonghe/20100204/092009174-3.html

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

上一篇: SQLPlus Set 详解
请登录后发表评论 登录
全部评论

注册时间:2008-10-26

  • 博文量
    38
  • 访问量
    168665