一、ORACLE中常见执行计划

表访问的执行计划

1、table access full:全表扫描。它会访问表中的每一条记录。

2、table access by user rowid:输入源rowid来自于用户指定。

3、table access by index rowid:输入源rowid来自于索引。

4、table access by global index rowid:全局索引获取rowid,然后再回表。

5、table access by local index rowid:分区索引获取rowid,然后再回表。

6、table access cluster:通过索引簇的键来访问索表。

7、external table access:访问外部表。

8、result cache:结果集可能来自于缓存。

9、mat_view rewrite access:物化视图。

索引访问的执行计划

1、index unique scan:只返回一条rowid的索引扫描,或者unique索引的等值扫描。

2、index range scan:返回多条rowid的索引扫描。

3、index full scan:顺序扫描整个索引。

4、index fast full scan:多块读方式扫描整个索引。

5、index skip scan:多应用于组合索引中,引导键值为空的情况下索引扫描。

6、and-equal:合并来自于一个或多个索引的结果集。

7、domain index:应用域索引。

表连接的执行计划

表连接的几种方式:

1、SORT MERGE JOIN(排序-合并连接)

2、NESTED LOOPS(嵌套循环)

3、HASH JOIN(哈希连接)

4、CARTESIAN PRODUCT(笛卡尔积)

二、怎样查看Oracle执行计划

1、plsql Developer中查看

在plsql中:工具  —>  首选项 —>   窗口类型  —>  计划窗口  —>  根据需要配置要显示在执行计划中的列

执行计划的常用列字段解释:

基数(Rows):Oracle估计的当前操作的返回结果集行数

字节(Bytes):执行该步骤后返回的字节数

耗费(COST)、CPU耗费:Oracle估计的该步骤的执行成本,用于说明SQL执行的代价,理论上越小越好(该值可能与实际有出入)

时间(Time):Oracle估计的当前操作所需的时间

在SQL窗口执行完一条select语句后按 F5 即可查看刚刚执行的这条查询语句的执行计划

2、sql命令查看

(1)explain plan命令

例子:explain plan for  select * from zyfs.contact_order where rowid = 'AAAU1wADyAAAAFLAAA';

select * from table(dbms_xplan.display);

(2)sqlplus的autotrace开关

autotrace开关可以在sqlplus下得到目标sql的执行计划,也可以同时得到目标sql的统计信息。autotrace开关的具体语法如下:

set autotrace {off|on|traceonly} [explain] [statistics]

具体使用方法如下:

(1)set autotrace on:显示目标sql的执行结果,执行计划和统计信息。

(2)set autotrace off:只显示目标sql的执行结果,为默认值。

(3)set autotrace traceonly:显示执行结果数量,执行计划和统计信息。

(4)set autotrace traceonly explain:只显示目标sql的执行计划。

(5)set autotrace tranceonly statistics:只显示目标sql的执行结果数量和统计信息。

三、看懂执行计划

执行计划其实是一颗树,层次最深的先执行,层次相同,上面的先执行。显示的时候已经按照层次缩进。

例如:

在plsql工具中有查看顺序的按钮,如上图红色圈子。

oracle用plsql trance,Oracle执行计划总结相关推荐

  1. (转) Oracle性能优化-读懂执行计划

    Oracle的执行计划 得到执行计划的方式 Autotrace例子 使用Explain explain plan set STATEMENT_ID='testplan' for select * fr ...

  2. Oracle 高性能SQL引擎剖析----执行计划

    执行计划是指示Oracle如何获取和过滤数据.产生最终结果集,是影响SQL语句执行性能的关键因素.我们在深入了解执行计划之前,首先需要知道执行计划是在什么时候产生的,以及如何让SQL引擎为语句生成执行 ...

  3. ORACLE SQL调优之执行计划与隐藏参数_complex_view_merging

    最近,赤峰windows 版的11.2.0.3的oracle数据库出现一条sql语句执行非常慢,需要1天的时间还出不来,但是观察服务器的IO和CPU都是很空闲,并且将 该sql语句涉及的对象全部导出, ...

  4. Oracle进阶篇之查看执行计划

    目录 一.查看执行计划的方式 1.1.设置autotrace 1.2.使用第三方工具 1.3.EXPLAIN PLAN FOR 二.清除SGA缓存 三.分析执行计划 3.1.创建测试表 3.2.查看执 ...

  5. Oracle授权普通用户查看执行计划

    利用不同的方法查看执行计划有对应不同的授权方法. 一. explain plan与dbms_xplan.display 最常用的方法,plsqldev的F5对应也是这个.这个命令会产生执行计划,并把执 ...

  6. Oracle 使用coe_xfr_sql_profile.sql迁移执行计划

    前面 Oracle 如何不改变SQL为其绑定构造的执行计划 介绍了不改变sql语句而替换其执行计划的方法,但有一个问题是里面的方法都需要执行计划和目标sql在库中cache或AWR中存在,否则无法使用 ...

  7. ORACLE 查看有多个执行计划的SQL语句

    在SQL优化过程,有时候需要查看哪些SQL具有多个执行计划(Multiple Executions Plans for the same SQL statement),因为同一个SQL有多个执行计划一 ...

  8. plsql如何配置连接oracle数据库,PLSQL连接Oracle 数据库配置详解

    (oracle官网下载地址:http://www.oracle.com/technetwork/topics/winsoft-085727.html , 下载地址2:http://download.c ...

  9. toad查看oracle的plsql包,Oracle logminer 分析redo log(TOAD与PLSQL)

    Oracle logminer 分析redo log Oracle 11g r2 RAC centos 6.5 设置时间格式 select to_char(sysdate,'yyyy-mm-dd hh ...

最新文章

  1. 2022-2028年中国聚硫橡胶行业市场研究及前瞻分析报告
  2. JS—图片压缩上传(单张)
  3. 五分钟DBA:浅谈伪分布式数据库架构
  4. 基于继承类的属性模版中无法绑定的原因和解决方法
  5. 力扣【每日温度】leetcode-739.每日温度:单调栈解法
  6. 理解“动心忍性”的含义
  7. 对Bridge模式的理解
  8. [2017.3.23]Miller-Rabin
  9. (转) lucene+paoding亲密接触
  10. 解决人工智能PCA算法输出不稳定的方案
  11. markdown与latex:数学符号远远大于\gg和远远小于书写\ll
  12. python笔记26-命令行传参sys.argv实际运用
  13. 精读《手写 SQL 编译器 - 回溯》 1
  14. 《集体智慧编程》第8章 构建价格模型 个人笔记
  15. 基于深度学习的单视图三维重建算法学习路线
  16. waiter.OnGreet(Tom) Delegate event
  17. ORACLE应用产品和SAP、SSA、SYMIX产品的比较分析
  18. SVN 如何解决冲突?
  19. 大数据java篇——集合类
  20. 如何通过ADB命令的方式关闭华为系手机的emui系统更新升级?解决:error: no devices/emulators found

热门文章

  1. TensorFlow Lite 是什么?用 TensorFlow Lite 来转换模型(附代码)
  2. ESP8266 Deep-Sleep 模式下的唤醒方式
  3. 酒店专用APP开发流程
  4. 计算机网络:数据链路层的基本概念
  5. 时间和空间复杂度计算
  6. 【1252. 奇数值单元格的数目】
  7. Linux虚拟化平台检测
  8. 怎么关闭vivo系统自检_vivo手机越用越卡怎么办?只要关闭这3个设置,就能轻松解决...
  9. 【蓝桥杯】回顾第十、十一届一些略有难度但可以拿下的题
  10. 配置了多个Filter过滤器,它们的执行顺序是怎么样的?