您的位置:首页 > 数据库 > Oracle

Oracle执行计划——Oracle 如何启用执行计划

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

1 启用Autotrace
1.1 以sys用户,运行utlxplan.sql
sqlplus / as sysdba
SQL> @$ORACLE_HOME/rdbms/admin/utlxplan.sql
1.2 通过执行plustrce.sql脚本创建plustrace角色
SQL> @$ORACLE_HOME/sqlplus/admin/plustrce.sql
1.3 授权
将 plustrace 角色授予当前用户(无 DBA 角色的用户),或者grant plustrace to public;
2 设置Autotrace的命令
序号
命令
解释
1
SET AUTOTRACE OFF
此为默认值,即关闭Autotrace
2
SET AUTOTRACE ON
产生结果集和解释计划并列出统计
3
SET AUTOTRACE ON EXPLAIN
显示结果集和解释计划不显示统计
4
SET AUTOTRACE TRACEONLY
显示解释计划和统计,尽管执行该语句但您将看不到结果集
5
SET AUTOTRACE TRACEONLY STATISTICS
只显示统计
Eg:SET AUTOTRACE ON, set timing on, alter session set time_statistics=true;
以下仅供参考

3 Autotrace执行计划的各列的涵义
序号
列名
解释
1
ID_PLUS_EXP
每一步骤的行号
2
PARENT_ID_PLUS_EXP
每一步的Parent的级别号
3
PLAN_PLUS_EXP
实际的每步
4
OBJECT_NODE_PLUS_EXP
Dblink或并行查询时才会用到
4 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)
在磁盘上执行的排序量
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: