获取执行计划之Autotrace
Autotrace 简介
AUTOTRACE是一项SQL*Plus功能,自动跟踪为SQL语句生成一个执行计划并且提供与该语句的处理有关的统计。
AUTOTRACE的好处是您不必设置跟踪文件的格式,并且它将自动为SQL语句显示执行计划。
Autotrace 选项说明
| 命令 | 输出内容 | 简写 | 是否真实执行 |
|---|---|---|---|
| SET AUTOTRACE OFF | 缺省模式,只显示SQL执行结果 | SET AUTOT OFF | 是 |
| SET AUTOTRACE ON | 显示SQL结果、执行路径和资源消耗 | SET AUTOT ON | 是 |
| SET AUTOTRACE TRACEONLY | 显示SQL结果数量、执行路径和资源消耗 | SET AUTOT TRACE | 是 |
| SET AUTOTRACE TRACEONLY EXPLAN | 只显示SQL执行路径 | SET AUTOT TRACE EXP | Select语句没有,DML会被执行 |
| SET AUTOTRACE TRACEONLY STATISTICS | 只显示资源消耗 | SET AUTOT TRACE STAT |
统计信息

| 统计信息 | 解释 |
|---|---|
| recursive calls | 产生的递归sql调用的条数 |
| Db block gets | 从buffer cache中读取的block的数量 |
| consistent gets | 从buffer cache中读取的undo数据的block的数量 |
| physical reads | 从磁盘读取的block的数量 |
| redo size | DML生成的redo的大小 |
| bytes sent via SQL*Net to client | 数据库服务器通过SQL*Net向查询客户端发送的查询结果字节数 |
| bytes received via SQL*Net from client | 通过SQL*Net接受的来自客户端的数据字节数 |
| SQL*Net roundtrips to/from client | 服务器和客户端来回往返通信的Oracle Net messages条数 |
| sorts (memory) | 在内存执行的排序量 |
| sorts (disk) | 在磁盘上执行的排序量 |
| rows processed | 处理的数据的行数 |
Autotrace 优缺点
- 优点
- 可以输出运行时的相关统计信息
- 有多种模式可供选择
- 缺点
- 必须要等SQL语句执行完,才出结果
- 无法看到表被访问了多少次
- 当存在绑定变量时执行计划可能不准


浙公网安备 33010602011771号