默认的Oracle的sqlplus是不能够启动执行分析计划、统计执行效率的,启动如下功能只需要几步:
1:通过sys用户sysdba角色登陆
2:创建autotrace 角色,执行如下脚本
$ORACLE_HOMERDBMSADMINtracetab.sql
在Oracle9i中需要运行$ORACLE_HOMERDBMSADMINutlxplan.sql脚本生成plan_table表;
在Oracle10g中PLAN_TABLE不再需要创建,Oracle缺省增加了一个字典表PLAN_TABLE$,然后基于PLAN_TABLE$创建公用同义词供用户使用
将该角色赋予需要进行跟踪分析的用户
3:启动跟踪
用法: SET AUTOT[RACE] {OFF | ON | TRACE[ONLY]} [EXP[LAIN]] [STAT[ISTICS]]
举例:
SET AUTOT[RACE] OFF 停止AutoTrace
SET AUTOT[RACE] ON 开启AutoTrace,显示AUTOTRACE信息和SQL执行结果
SET AUTOT[RACE] TRACEONLY 开启AutoTrace,仅显示AUTOTRACE信息
SET AUTOT[RACE] ON EXPLAIN 开启AutoTrace,仅显示AUTOTRACE的EXPLAIN信息
SET AUTOT[RACE] ON STATISTICS开启AutoTrace,www.linuxidc.com仅显示AUTOTRACE的STATISTICS信息
结果解释
physical reads 物理读——执行SQL的过程中,从硬盘上读取的数据块个数
redo size 重做数——执行SQL的过程中,产生的重做日志的大小
bytes set via sql*net to client 通过sql*net发送给客户端的字节数
bytes received via sql*net from client 通过sql*net接受客户端的字节数
sorts(memory) 在内存中发生的排序
sorts(disk) 不能在内存中发生的排序,需要硬盘来协助
rows processed 结果的记录数
逻辑读 =(db block gets+ consistent gets)
set atuotrace on;
set autotrace traceonly explain statistics;