AUTOTRACE是一个SQL*Plus工具,用于跟踪SQL的执行计划,收集执行时所耗用资源的统计信息,是SQL优化工具之一,下面给出启用
AUTOTRACE 功能步骤。
一 、启用AUTOTRACE 功能步骤
1. 运行utlxplan.sql($ORACLE_HOME/rdbms/admin下) 脚本创建 PLAN_TABLE;
SQL> start $ORACLE_HOME/rdbms/admin/utlxplan
Table created.
2. 将表PLAN_TABLE授予给所有用户
SQL> grant all on plan_table to public;
Grant succeeded.
3. 运行plustrce.sql($ORACLE_HOME/rdbms/admin下) 脚本创建 角色plustrace;
SQL> start $ORACLE_HOME/sqlplus/admin/plustrce.sql
4. 将角色plustrace授予给所有用户
SQL> grant plustrace to public;
Grant succeeded.
二、设置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) |
在内存执行的排序量 |
7 |
sorts (disk) |
在磁盘上执行的排序量 |