技术开发

ORACLE AUTOTRACE的介绍
作者 sonic under 2006年06月19日 22:36

    【IT168 技术文档】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 '/ as sysdba';

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

SQL>@ D:oracleora81RDBMSADMINutlxplan.sql

     C.通过执行 plustrce.sql(ORACLE_HOME/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 角色的用户)。

    二、设置Autotrace的命令。

   

序号  列名 解释
1 SET AUTOTRACE OFF 此为默认值,即关闭Autotrace
2 SET AUTOTRACE ON 产生结果集和解释计划并列出统计
3 SET AUTOTRACE ON EXPLAIN 显示结果集和解释计划不显示统计
4 SETAUTOTRACE TRACEONLY 显示解释计划和统计,尽管执行该语句但您将看不到结果集
5  SET AUTOTRACE 
 TRACEONLY 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) 在磁盘上执行的排序量

打开APP阅读全文
{{data.thematic.text}}

相关文章

加载中...

分享到

请使用浏览器的分享功能
分享到微信等