使用autotrace查看执行计划

set autotrace off
不产生autotrace报告,默认值
set autotrace on explain
autotrace报告只展示最优的执行方式(optimizer execution path)
SQL> set autotrace on explain;
—插入数据测试是否执行了sql
SQL> insert into scott.emp values('5566','explain','','','','','','');

1 row created.
—已经表明执行了sql
—只展示了执行计划
Execution Plan
----------------------------------------------------------
---------------------------------------------------------------------------------
| Id  | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
---------------------------------------------------------------------------------
|   0 | INSERT STATEMENT | |     1 |   100 |     1   (0)| ss00:00:01 |
|   1 |  LOAD TABLE CONVENTIONAL | EMP | | |     | |
---------------------------------------------------------------------------------

SQL> select * from scott.emp where empno=5566;
     EMPNO ENAME      JOB       MGR HIREDATE    SAL       COMM     DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
      5566 explain

Execution Plan
----------------------------------------------------------
Plan hash value: 2949544139
--------------------------------------------------------------------------------------
| Id  | Operation    | Name   | Rows  | Bytes | Cost (%CPU)| Time     |
--------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT    |     |   1 |  87 |   2   (0)| 00:00:01 |
|   1 |  TABLE ACCESS BY INDEX ROWID| EMP    |   1 |  87 |   2   (0)| 00:00:01 |
|*  2 |   INDEX UNIQUE SCAN    | PK_EMP |   1 |     |   1   (0)| 00:00:01 |
--------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------
   2 - access("EMPNO"=5566)

set autotrace on statistics
autotrace报告sql执行统计信息(SQL  statement execution statistics. )
SQL> set autotrace on statistics;
SQL> insert into scott.emp values('6677','statistics','','','','','','');

1 row created.
—说明执行了sql
—只展示sql执行的统计信息
Statistics
----------------------------------------------------------
52  recursive calls
 5  db block gets
80  consistent gets
 0  physical reads
520  redo size
839  bytes sent via SQL*Net to client
826  bytes received via SQL*Net from client
 3  SQL*Net roundtrips to/from client
10  sorts (memory)
 0  sorts (disk)
 1  rows processed

SQL> select * from scott.emp where empno=6677;
     EMPNO ENAME      JOB       MGR HIREDATE    SAL       COMM     DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
      6677 statistics

Statistics
----------------------------------------------------------
 1  recursive calls
 0  db block gets
 2  consistent gets
 0  physical reads
 0  redo size
869  bytes sent via SQL*Net to client
512  bytes received via SQL*Net from client
 1  SQL*Net roundtrips to/from client
 0  sorts (memory)
 0  sorts (disk)
 1  rows processed
set autotrace on
autotrace报告包含了最优执行方式和sql执行统计信息
SQL> set autotrace on;
SQL> insert into scott.emp  values('8899','on','','','','','','');

1 row created.

—相当于set autotrace on explain和set autotrace on statistics的和,既输出执行计划,也输出统计信息,同时也执行sql
Execution Plan
----------------------------------------------------------

---------------------------------------------------------------------------------
| Id  | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
---------------------------------------------------------------------------------
|   0 | INSERT STATEMENT | |     1 |   100 |     1   (0)| 00:00:01 |
|   1 |  LOAD TABLE CONVENTIONAL | EMP | | |     | |
---------------------------------------------------------------------------------

Statistics
----------------------------------------------------------
45  recursive calls
 5  db block gets
77  consistent gets
 0  physical reads
512  redo size
839  bytes sent via SQL*Net to client
816  bytes received via SQL*Net from client
 3  SQL*Net roundtrips to/from client
10  sorts (memory)
 0  sorts (disk)
 1  rows processed

SQL> select * from scott.emp where empno=8899;
     EMPNO ENAME      JOB       MGR HIREDATE    SAL       COMM     DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
      8899 on

Execution Plan
----------------------------------------------------------
Plan hash value: 2949544139
--------------------------------------------------------------------------------------
| Id  | Operation    | Name   | Rows  | Bytes | Cost (%CPU)| Time     |
--------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT    |     |   1 |  87 |   2   (0)| 00:00:01 |
|   1 |  TABLE ACCESS BY INDEX ROWID| EMP    |   1 |  87 |   2   (0)| 00:00:01 |
|*  2 |   INDEX UNIQUE SCAN    | PK_EMP |   1 |     |   1   (0)| 00:00:01 |
--------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
   2 - access("EMPNO"=8899)
Statistics
----------------------------------------------------------
 9  recursive calls
 0  db block gets
18  consistent gets
 0  physical reads
 0  redo size
861  bytes sent via SQL*Net to client
512  bytes received via SQL*Net from client
 1  SQL*Net roundtrips to/from client
 0  sorts (memory)
 0  sorts (disk)
 1  rows processed
set autotrace traceonly
和set autotrace on类似,但是不输出用户查询的结果
SQL> set autotrace traceonly;
SQL> insert into scott.emp values('9900','traceonly','','','','','','');
1 row created.
—与set autotrace on 类似,都会输出执行计划和统计信息
Execution Plan
----------------------------------------------------------
---------------------------------------------------------------------------------
| Id  | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
---------------------------------------------------------------------------------
|   0 | INSERT STATEMENT | |     1 |   100 |     1   (0)| 00:00:01 |
|   1 |  LOAD TABLE CONVENTIONAL | EMP | | |     | |
---------------------------------------------------------------------------------

Statistics
----------------------------------------------------------
108  recursive calls
 5  db block gets
191  consistent gets
 1  physical reads
520  redo size
839  bytes sent via SQL*Net to client
825  bytes received via SQL*Net from client
 3  SQL*Net roundtrips to/from client
15  sorts (memory)
 0  sorts (disk)
 1  rows processed

SQL> select * from scott.emp where empno=9900;
—与set autotrace on不同的是,没有输出查询结果
Execution Plan
----------------------------------------------------------
Plan hash value: 2949544139
--------------------------------------------------------------------------------------
| Id  | Operation    | Name   | Rows  | Bytes | Cost (%CPU)| Time     |
--------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT    |     |   1 |  87 |   2   (0)| 00:00:01 |
|   1 |  TABLE ACCESS BY INDEX ROWID| EMP    |   1 |  87 |   2   (0)| 00:00:01 |
|*  2 |   INDEX UNIQUE SCAN    | PK_EMP |   1 |     |   1   (0)| 00:00:01 |
--------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------
   2 - access("EMPNO"=9900)
Statistics
----------------------------------------------------------
 9  recursive calls
 0  db block gets
18  consistent gets
 0  physical reads
 0  redo size
867  bytes sent via SQL*Net to client
512  bytes received via SQL*Net from client
 1  SQL*Net roundtrips to/from client
 0  sorts (memory)
 0  sorts (disk)
 1  rows processed

SQL> 


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31461640/viewspace-2143711/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/31461640/viewspace-2143711/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值