【转】关于autotrace的参数

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 角色的用户)

 

或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

 

只显示统计

 

 

EgSET 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)

 

在磁盘上执行的排序量

 

 

这个链接引用该篇文章 http://publishblog.blogchina.com/blog/tb.b?diaryID=5892817

posted @ 2012-10-23 19:01  Peyton  阅读(201)  评论(0编辑  收藏  举报