Welcome 微信登录

首页 / 数据库 / MySQL / Oracle 配置Auto Trace监控sql执行计划

获取执行计划和执行成本,写出最优的sql语句,是每个Oracle开发人员和dba必须具备的能力之一。Oracle 11g以后已经默认为dba role自动打开autotrace?配置autotrace:进入到$ORACLE_HOME/rdbms/admin下面进入到sqlplus中,执行:SQL> @utlxplan创建分析表,为了方便操作,我们可以创建一个同义词SQL> create public synonym plan_table for plan_table;我们可以把这个表的权限赋给我们想要给的用户,也可以给public这样任何一个人就可以使用sql*plus进程跟踪啦。这样就不需要每个用户都按照自己的计划表啦。SQL> grant all on plan to public;创建plustrace的角色进入到%ORACLE_HOME%/sqlplus/admin(linux,unix是$ORACLE_HOME/sqlplus/admin)执行SQL> @plustrce.sql我们也可以把他的权限赋予给publicSQL> grant plustrace to public;关于autotrace的操作:安装成功后,会自动得到一个autotrace的报告,我们可以使用一个参数显示执行的时间:SQL> set timing onautotrace默认是关闭的,一下是他的详细启动:SET AUTOTRACE OFF:不生成AUTOTRACE 报告,这是默认设置。
SET AUTOTRACE ON EXPLAIN:AUTOTRACE 报告只显示优化器执行路径。
SET AUTOTRACE ON STATISTICS:AUTOTRACE 报告只显示SQL 语句的执行统计信息。
SET AUTOTRACE ON:AUTOTRACE 报告既包括优化器执行路径,又包括SQL 语句的执行统计信息。
SET AUTOTRACE TRACEONLY:这与SET AUTOTRACE ON 类似,但是不显示用户的查询输出。这是开启autotrace后的一个执行计划SQL> insert into t values (2,"2");已创建 1 行。已用时间:  00: 00: 00.00执行计划
-----------------------------------------------------------------------------------------------------------------------------------
| Id  | Operation        | Name | Rows  | Bytes | Cost (%CPU)| Time     |
-------------------------------------------------------------------------
|   0 | INSERT STATEMENT |      |     1 |   100 |     1   (0)| 00:00:01 |
-------------------------------------------------------------------------统计信息
----------------------------------------------------------
          1  recursive calls
          1  db block gets
          1  consistent gets
          0  physical reads
        308  redo size
        669  bytes sent via SQL*Net to client
        564  bytes received via SQL*Net from client
          4  SQL*Net roundtrips to/from client
          1  sorts (memory)
          0  sorts (disk)
          1  rows processed以下是对执行计划中的统计信息的解析:
项目含义备注
recursive calls递归调用SQL的个数;Oracle在执行这个SQL的时候,有时候会生成很多额外的SQL语句,这个就成为递归调用; 
db block gets逻辑读,从数据buffer cache中读取;进行current模式读取; 
consistent gets逻辑读,进行一致读模式读取; 
physical reads物理读成本; 
redo size产生重做日志大小 
bytes sent via SQL*Net to client利用sql*net传入到client的字节数; 
bytes received via SQL*Net from client利用sql*net传出client的字节数; 
SQL*Net roundtrips to/from client  
sorts (memory)内存中排序空间使用; 
sorts (disk)物理存储中排序空间使用;如果memory空间使用不足,是会使用disk的空间的;
rows processed 
Autorace工具是我们经常使用的性能评测工具,能够帮助解决很多问题。Oracle 日志分析工具LogMiner的安装使用Oracle 性能分析工具Statpack安装使用相关资讯      Oracle教程 
  • Oracle中纯数字的varchar2类型和  (07/29/2015 07:20:43)
  • Oracle教程:Oracle中查看DBLink密  (07/29/2015 07:16:55)
  • [Oracle] SQL*Loader 详细使用教程  (08/11/2013 21:30:36)
  • Oracle教程:Oracle中kill死锁进程  (07/29/2015 07:18:28)
  • Oracle教程:ORA-25153 临时表空间  (07/29/2015 07:13:37)
  • Oracle教程之管理安全和资源  (04/08/2013 11:39:32)
本文评论 查看全部评论 (0)
表情: 姓名: 字数