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
|
只显示统计
|
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)
|
在磁盘上执行的排序量
|
分享到:
相关推荐
oracle 的Autotrace介绍 是oracle10g的新技术,有人需要么
AUTOTRACE是一个SQL*Plus工具,用于跟踪SQL的执行计划,收集执行时所耗用资源的统计信息,是SQL优化工具之一,下面给出启用AUTOTRACE 功能步骤。
Oracle性能分析——使用set_autotrace_on和set_timing_on来分析select语句的性能.doc
1.Oracle如何得到一个很大的表 2.loop insert 实例 3.autotrace验证索引的性能到底有多大? 4.EXPLAIN验证SQL是否走索引 5.结合autotrace创建并验证函数索引 6.sql trace分析工具--TKPROF详细讲解 7.V$SQL视图详解加...
10.1.2 Oracle 10g AUTOTRACE功能的增强 473 10.1.3 AUTOTRACE功能的内部操作 475 10.1.4 使用AUTOTRACE功能辅助SQL优化 477 10.2 获取SQL执行计划的方法 479 10.2.1 通过V$SQL_PLAN获得执行计划 479 ...
8.5.5 使用 AUTOTRACE 获得 SQL 语句 执行计划和统计数据 8.6 优化回退段 8.6.1 最小化回退段争用 8.6.2 使动态扩充最小化 8.6.3 分布回退段的 I/O 8.7 优化索引 8.7.1 怎样确定和重建产生碎片的索引 8.7.2 ...
怎么进行autotrace进行查看执行计划
网上有人给出了佳的优化思路是: 1、先将大表中满足条件的记录抽出来生成一张临时表 2、再将这较小的临时表与另一张较小的表进行关联查询 ...只要把AUTOTRACE打开你会看到REDO的开销。 关于临时表的使用至
§12.8.6 AUTOTRACE 实用程序 157 第13章 数据访问方法 160 §13.1 使用索引的访问方法 161 §13.1.1 何时创建索引 161 §13.1.2 索引列和表达式的选择 161 §13.1.3 选择复合索引的主列 161 §13.1.4 要用可选择性...
oracle执行计划,设置autotrace允许显示DML语句的一些统计信息和/或查询计划。
着重调优的好书,非常经典,其中对于tkprof,autotrace等有很深刻的讲解
10.1 使用AUTOTRACE功能辅助SQL优化 10.2 获取SQL执行计划的方法 10.3 捕获问题SQL解决过度CPU消耗问题 10.4 使用SQL_TRACE/10046事件进行数据库诊断 10.5 使用物化视图进行翻页性能调整 ...
10.1 使用AUTOTRACE功能辅助SQL优化 10.2 获取SQL执行计划的方法 10.3 捕获问题SQL解决过度CPU消耗问题 10.4 使用SQL_TRACE/10046事件进行数据库诊断 10.5 使用物化视图进行翻页性能调整 ...
10.1 使用AUTOTRACE功能辅助SQL优化 10.2 获取SQL执行计划的方法 10.3 捕获问题SQL解决过度CPU消耗问题 10.4 使用SQL_TRACE/10046事件进行数据库诊断 10.5 使用物化视图进行翻页性能调整 ...
oracle 性能优化 教你如果调优 sql>set autotrace on
query processing,Explain plan,autotrace
设置SQL*Plus 的AUTOTRACE ......................................................... 35 配置Statspack............................................................................. 37 定制脚本...............
实验147:AUTOTRACE的使用 235 实验148:定位高消耗资源语句 236 实验149:收集数据库的统计信息 236 实验150:收集列的统计信息 238 实验151:自动收集统计信息 239 数据库的不同访问模式 240 实验152:全表扫描的...
主要介绍了Oracle中使用DBMS_XPLAN处理执行计划详解,文中包含大量实例,以及set autotrace命令对应实现等内容,需要的朋友可以参考下