默认的oracle的sqlplus是不能够启动执行分析计划、统计执行效率的,启动如下功能只需要几步:
1:通过sys用户sysdba角色登陆
2:创建autotrace 角色,执行如下脚本
$oracle_home\rdbms\admin\tracetab.sql
在oracle9i中需要运行$oracle_home\rdbms\admin\utlxplan.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,仅显示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;
