AUTOTRACE是sqlplus中的一个工具,可以显示执行查询的解释计划及使用的资源。
通过设置AUTOTRACE,可以得到AUTOTRACE报告,其中包括SQL优化器所使用的执行路径及SQL语句执行的统计信息。
成功执行DML SQL(SELECT/DELETE/UPDATE/MERGE和INSERT)语句后就会生成AUTOTRACE报告,通过报告可以对DML SQL进行监视和调优。
AUTOTRACE的配置如下:
1、cd $ORACLE_HOME/rdbms/admin
2、sqlplus / as sysdba
3、运行utlxplan.sql (@utlxplan.sql)
4、运行grant all on plan_table to 'dbuser'
创建并授予plustrace角色:
1、cd $ORACLE_HOME/sqlplus/admin
2、sqlplus / as sysdba
3、运行plustrce.sql (@plustrce.sql)
4、运行grant plustrace to 'dbuser'
设置AUTOTRACE系统变量:
1、set autotrace off; 不生产autotrace报告,默认的设置。
2、set autotrace on explain; 报告只显示优化器执行路径。
3、set autotrace on statistics; 报告只显示SQL语句的执行统计信息。
4、set autotrace on; 报告即包含优化器执行路径,也包括SQL语句的执行统计信息。
5、set autotrace traceonly; 和set autotrace on类似,只是不显示用户的查询结果。
配置并设置好,我们就可以使用了,登录数据库,操作如下:
-
scott@KAIXIN> set autotrace on
-
scott@KAIXIN> select 1 from dual;
-
-
1
-
----------
-
1
-
-
-
Execution Plan
-
----------------------------------------------------------
-
Plan hash value: 1388734953
-
-
-----------------------------------------------------------------
-
| Id | Operation | Name | Rows | Cost (%CPU)| Time |
-
-----------------------------------------------------------------
-
| 0 | SELECT STATEMENT | | 1 | 2 (0)| 00:00:01 |
-
| 1 | FAST DUAL | | 1 | 2 (0)| 00:00:01 |
-
-----------------------------------------------------------------
-
-
-
Statistics
-
----------------------------------------------------------
-
1 recursive calls
-
0 db block gets
-
0 consistent gets
-
0 physical reads
-
0 redo size
-
508 bytes sent via SQL*Net to client
-
492 bytes received via SQL*Net from client
-
2 SQL*Net roundtrips to/from client
-
0 sorts (memory)
-
0 sorts (disk)
-
1 rows processed
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/20753330/viewspace-1136491/
,如需转载,请注明出处,否则将追究法律责任。