Oracle执行计划 讲解(二)

现在我们讲讲Oracle执行计划里面每个参数的含义 我们以下面的一个例子来讲解 这里做个补充:trace的类型一共有以下几种 序号

现在我们讲讲Oracle执行计划里面每个参数的含义

我们以下面的一个例子来讲解

这里做个补充:trace的类型一共有以下几种

序号

命令

解释

1

SET AUTOTRACE OFF

此为默认值,即关闭Autotrace 

2

SET AUTOTRACE ON EXPLAIN

只显示执行计划

3

SET AUTOTRACE ON STATISTICS

 只显示执行的统计信息

4

SET AUTOTRACE ON

 包含2,3两项内容

5

SET AUTOTRACE TRACEONLY

 与ON相似,但不显示语句的执行结果

 我喜欢SET AUTOTRACE TRACEONLY,我们以后的例子都是基于这种方式的

让我们来一行一行的看:

一、表部分

1、Plan hash value:

Plan hash value: 2782876085  这一行是这一语句的hash值,我们知道oracle对每条语句产生的执行计划放在share pool里面,第一次要经过硬解析,产生hash值。下次再执行该语句时候比较hash值,如果相同就不要执行硬解析。

2、Operation( 操作)

这里的东西就多了,就是把sql进行分解,让我一起看看上的sql,这段sql的第一步是employee_id=25,这里我们employee_id上面建了主键,建主键默认创建唯一索引。这里是用“=”进行限制的,所以走的unique scan方式。其他方式参考Oracle执行计划 讲解(一)内容 

还有一个知识点,就是要知道表链接操作,见我的另外一篇文章()

3、Name(被操作的对象)

比如上例中的第二行operation(TABLE ACCESS BY INDEX ROWID)这里的TABLE对象为EMPLOYEES

4、Row,有的地方也叫Cardinality(用plsqldev里面解释计划窗口)

这里是数据查询的行数,比如说上个例子第4行,  departments 这张表就要扫描27行,然后和子查询(select b.department_id from employees b where b.employee_id=205)的值进行比较。如果使用=(注:大部分时候是不能用=来替换,这里是特例)就不一样了。

5、Byte

扫描的数据的字节数

6、Cost

这里上次讲过了,这里简单说下吧。

cost没有单位,是一个相对值,是sql文以cbo方式解析执行时,供oracle用来评估cbo成本,选择执行计划用的。

公式:Cost=(Single block I/O cost+ Multiblock I/O cost+   CPU cost)/sreadtim

没有明确的含义,不过对比时就非常有用了。

7、Time

每段执行的时间

linux

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

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

(0)
上一篇 2025年2月23日 00:11:30
下一篇 2025年2月23日 00:11:43

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

相关推荐

  • navicat怎么添加数据

    打开Navicat。 打开数据表所在的数据库,右击需要新增记录的数据库表,然后点击“打开表”。 相关推荐:《Navicat for mysql使用图文教程》 此时显示数据库表已有数据,例中并无记录。 直接在表中输入第一条记录的信息,一般字段…

    2025年2月23日 数据库
    100
  • navicat怎么导出数据

    当我们对mysql数据库进行了误操作,造成某个数据表中的部分数据丢失时,肯定就要利用备份的数据库,对丢失部分的数据进行导出、导入操作了。Navicat工具正好给我们提供了一个数据表的导入导出功能。 导出数据表 Navicat导出数据表的格式…

    2025年2月23日 数据库
    100
  • Excel数据如何批量导入navicat

    打开电脑上的Navicat,点击左上角的“连接”。 选择数据库类型。 填写相关的信息。 创建好之后就会显示存在的数据库名。 相关推荐:《Navicat for mysql使用图文教程》 选择指定的数据库名,右键单击,选择导入向导。 选择文件…

    2025年2月23日 数据库
    100
  • 不同备份策略不兼容引起的磁盘空间故障解决实例

    最近接收一个系统,上线运维一年余。交接时候,业务部门反映曾经出现磁盘空间占满故障。当时引起整个系统瘫痪,最后联系开发商介 应用系统生命周期是一个整体,除了最开始的需求调研、开发测试和上线,更长的时期是在运维方面。应用系统的价值体现也就是在运…

    数据库 2025年2月23日
    100
  • Oracle并行执行特性应用初探

    在历史数据转出测试过程中,通过不断的优化,包括SQL调整和数据库调整,从AWR中看到,基本上难以进行更多的性能提升,于是准备试 1. 序 在历史数据转出测试过程中,通过不断的优化,包括sql调整和数据库调整,从awr中看到,基本上难以进行更…

    数据库 2025年2月23日
    100
  • Oracle生产环境RMAN备份脚本

    题记:这里分享一下我们Oracle的备份脚本,这些脚本均在生产库运行,正确无误! 环境:SUSE Linux 10sp2 + Oracle 11gR1 说明:小 题记:这里分享一下我们oracle的备份脚本,这些脚本均在生产库运行,正确无误…

    数据库 2025年2月23日
    100
  • xtraBackup备份原理剖析

    xtrabackup作为innodb的hotbackup工具,由percona公司开发,因开源,热备份和物理备份而在mysql中部署广泛,详情的说明可见之前的 xtrabackup作为innodb的hotbackup工具,由percona公…

    数据库 2025年2月23日
    100
  • 再说MySQL中的 table_id

    最近线上一个实例出现了主从数据不一致的情况,也即从库丢失数据的情况。根本原因:由于table_list-gt;table_id为uint,而m_table 【背景】最近线上一个实例出现了主从数据不一致的情况,也即从库丢失数据的情况。根本原因…

    数据库 2025年2月23日
    100
  • 更改Oracle数据库连接端口

    Oracle数据库默认数据库监听与连接端口是1521, 但是有时候项目中需要更改默认端口,这样做很多时候客户要求,基于安全考虑. 以Ora oracle数据库默认数据库监听与连接端口是1521, 但是有时候项目中需要更改默认端口,,这样做很…

    数据库 2025年2月23日
    100
  • ORA-04030错误解决过程一例

    综合分析,报了04030的错误,而下面又分别报了27302及27301的错误。根据报错的意思,一方面,创建会话失败,另一方面,无法找到映 今天客户说从数据库后台发现报错,具体如下: Errors in file /Oracle/linuxi…

    数据库 2025年2月23日
    100

发表回复

登录后才能评论