Oracle优化AutoTrace输出内容的含义

SQLPLUS的AutoTrace是分析SQL的执行计划,执行效率的一个非常简单方便的工具,在绝大多数情况下,也是非常有用的工具。利用AutoT

sqlplus的autotrace是分析sql的执行计划,执行效率的一个非常简单方便的工具,在绝大多数情况下,也是非常有用的工具。利用autotrace工具提供的sql执行计划和执行状态可以为我们优化sql的时候提供优化的依据,以及优化效果的明显的对比效果。

在SQLPLUS中输入相关AUTOTRACE命令,输入想要优化的SQL语句,即可得到SQL的执行计划和执行状态信息。

SQL> set timing on //开启时间显示
SQL> set autot traceonly //仅显示trace结果,不显示SQL执行结果
SQL> select * from ac01 where aac001=’9990000111′;

已用时间: 00: 00: 00.62

Execution Plan
———————————————————-
0 SELECT STATEMENT Optimizer=CHOOSE
1 0 TABLE ACCESS (BY INDEX ROWID) OF ‘AC01′
2 1 INDEX (UNIQUE SCAN) OF ‘PK_AC01′ (UNIQUE)
Statistics
———————————————————-
0 recursive calls
0 db block gets
3 consistent gets
2 physical reads
0 redo size
1875 bytes sent via SQL*Net to client
424 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
用法: 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信息

三. 执行计划的分析
Execution Plan
———————————————————-
0 SELECT STATEMENT Optimizer=CHOOSE
1 0 TABLE ACCESS (BY INDEX ROWID) OF ‘AC01′
2 1 INDEX (UNIQUE SCAN) OF ‘PK_AC01′ (UNIQUE)
———————————————————-

这个就是SQL select * from ac01 where aac001=’9990000111′;执行计划。
执行的过程为:
1) INDEX (UNIQUE SCAN) OF ‘PK_AC01′ (UNIQUE)
2) TABLE ACCESS (BY INDEX ROWID) OF ‘AC01′
执行计划是一个树状结构,计划的执行是从叶结点开始,直到根结点。所以不同的层上,越底层的越先被执行(第一列数字中较大的);不同层上,越左边的越先被执行(第二列数字中较小的)。
通过分析这个实行计划可以知道以下几点:
a) 这是一条SELECT语句
b) 数据库系统现在使用的优化器模式为CHOOSE
c) 执行的时候先通过AC01表上的唯一索引PK_AC01查找到相应记录的ROWID,,然后通过索引的ROWID直接访问AC01表,找到相应的记录。
这是一条比较简单的SQL,所以执行计划也相对来说比较简单,没有涉及到过多的连接和索引等。

linux

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/1912832.html

(0)
上一篇 2025年2月22日 17:27:14
下一篇 2025年2月22日 17:28:07

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • Oracle 11g中Temp临时表空间、文件的新特性

    临时表空间是Oracle体系结构中比较特殊的结构。通常情境下,数据库使用者只需要设置对应的临时表空间(到用户),临时段分配等工 临时表空间是oracle体系结构中比较特殊的结构。通常情境下,数据库使用者只需要设置对应的临时表空间(到用户),…

    数据库 2025年2月23日
    100
  • Oracle SQL 执行计划和分析小结

    Oracle有多种方式获得一条SQL语句的查询计划,比如使用explain plan命令,在PLSQL Developer里面按F5快捷键等,但是作为SQL调优, oracle有多种方式获得一条sql语句的查询计划,比如使用explain …

    数据库 2025年2月23日
    100
  • Oracle空间数据库函数使用

    最近一段时间一直在用Oracle的空间数据库做一些空间数据处理和分析功能,写这篇文章主要是做一个笔记,毕竟好记性不如烂笔头嘛。 最近一段时间一直在用oracle的空间数据库做一些空间数据处理和分析功能,写这篇文章主要是做一个笔记,毕竟好记性…

    数据库 2025年2月23日
    100
  • DB2 SQL0902C 解决实例

    我在其他主机上对数据库进行在线备份后打算在该主机上进行DB2的还原遭遇SQL0902C A system error (reason code = 8) occurred. 周日开发环境在对数据库进行归档删除时,将数据库重启之后,数据库无法…

    数据库 2025年2月23日
    100
  • Oracle下session的查询与删除

    Oracle下session的查询与删除 1、查询当前session SQLgt; select username,sid,serial# from v$session where username is not oracle下sessio…

    数据库 2025年2月23日
    100
  • undo Segment深入解析

    在undo自动管理时,设置了undo_retention以后,undo块就存在四种状态。Active:表示正在使用该undo的事务还没有提交或回滚。Inac 在undo自动管理时,设置了undo_retention以后,undo块就存在四种…

    数据库 2025年2月23日
    100
  • MySQL的自动化安装部署

    有过MySQL运维的人应该都清楚,线上的MySQL一般都采用源码编译,因为这样才可以根据企业的各自需要选择要编译的功能,虽然MySQL的 有过mysql运维的人应该都清楚,线上的mysql一般都采用源码编译,因为这样才可以根据企业的各自需要…

    数据库 2025年2月23日
    100
  • Oracle常用系统查询

    1 查询系统所有对象 SELECT OWNER, OBJECT_NAME, OBJECT_TYPE, CREATED, LAST_DDL_TIME, TIMESTAMP, STATUS FROM DBA_OBJECTS W 1  查询系统所…

    数据库 2025年2月23日
    100
  • Oracle数据泵详解

    数据泵与常规方式对比:Oracle 10g开始引入数据泵,与传统exp/imp相比,数据泵可以作业分离,允许挂起和恢复导入导出任务,可以从 数据泵与常规方式对比:oracle 10g开始引入数据泵,与传统exp/imp相比,数据泵可以作业分…

    数据库 2025年2月23日
    100
  • Oracle函数-高阶篇

    下面整理了部分Oracle函数-高阶篇: 1、 CATSTR 举例:SELECT CATSTR(COLUMN_NAME) NAME_LIST FROM DBA_TAB_COLUMNS WHERE TR 下面整理了部分oracle函数-高阶篇…

    数据库 2025年2月23日
    100

发表回复

登录后才能评论