一、访问表执行计划

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:物化视图。

二、与B-TREE索引相关的执行计划

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:应用域索引。

三、与BIT-MAP索引相关的执行计划

1、bitmap conversion:将位转换为rowid或相反。

2、bitmap index:从位图中取一个值或一个范围。

3、bitmap merge

4、bitmap minus:

5、bitmap or:

四、与表连接相关的执行计划

1、merge join:排序合并连接。

2、nested loops:嵌套循环连接。

3、hash join:哈希连接。

4、cartesian:笛卡尔积连接。

5、connect by:层次查询索引,多来自于start with子句。

6、outer:外链接。

1)merge join outer:

2)nested loops outer:

3)hash join outer:

7、anti:反连接。

1)merge join anti:

2)nested loops anti:

3)hash join anti:

8、semi:半连接。

1)merge join semi:

2)nested loops semi:

3)hash join semi:

五、与集合相关的执行计划

1、union-all:

2、union(union-all,sort unique):

3、concatenation:

4、intersection:

5、minus:

六、与分区相关的索引

1、partition single:访问单个分区。

2、partition iterator:访问多个分区。

3、partition all:访问所有分区。

4、partition inlist:基于in列表中的值来访问分区。

七、与sort相关的执行计划

1、sort unique:排序、去重。

2、sort join:为merge join的第一步,排序操作,一般与merge join联合使用。

3、sort aggregate:当分组好的数据上使用分组函数时。

4、sort order by:单纯的排序

5、sort group by:排序并分组

6、buffer sort:对临时结果进行一次内存排序。

八、其他执行计划

1、view:

2、count:

3、stopkey:目标sql中存在rownum<10这种情况。

4、hash group by:

5、inlist iterator:

6、filter:过滤,相当于处理过的排序合并连接。

7、remote:与dblink相关的执行计划。

8、for update:

9、sequence:使用了oracle序列。

10、collection iterator:使用了表函数提取记录。

11、fast dual:访问dual表。

12、first row:获取查询的第一条记录。

13、load as select:使用select进行直接路径insert操作,通常加/*+append*/提示。

14、fixed table:访问固定的(X$/V$)表。

15、fixed index:访问固定的索引。

16、window buffer:支持分析函数的内部操作。

Oracle性能优化之oracle中常见的执行计划及其简单解释的更多相关文章

  1. Oracle性能优化之Oracle里的执行计划

    一.执行计划 执行计划是目标SQL在oracle数据库中具体的执行步骤,oracle用来执行目标SQL语句的具体执行步骤的组合被称为执行计划. 二.如何查看oracle数据库的执行计划 oracle数 ...

  2. oracle性能优化(项目中的一个sql优化的简单记录)

    在项目中,写的sql主要以查询为主,但是数据量一大,就会突出sql性能优化的重要性.其实在数据量2000W以内,可以考虑索引,但超过2000W了,就要考虑分库分表这些了.本文主要记录在实际项目中,一个 ...

  3. Oracle性能优化之 Oracle里的优化器

    优化器(optimizer)是oracle数据库内置的一个核心子系统.优化器的目的是按照一定的判断原则来得到它认为的目标SQL在当前的情形下的最高效的执行路径,也就是为了得到目标SQL的最佳执行计划. ...

  4. Oracle性能优化之oracle里表、索引、列的统计信息

    一.表的统计信息 表的统计信息用于描述表的详细信息,包括记录数(num_rows).表块的数量(blocks).平均行长度(avg_row_len)等典型维度.这些维度可以通过数据字典表DBA_TAB ...

  5. Oracle性能优化之Oracle里的统计信息

    一.什么是统计信息 oracle数据库里的统计信息是如下的一组数据:他们存储在数据字典里,且从多个维度描述了oracle数据库数据对象的详细信息. oracle数据库里的统计信息主要分为以下6种情况: ...

  6. Oracle性能优化1-总体思路和误区

    最近在看梁敬彬老师关于Oracle性能优化的一些案例,在这里做一些简单的总结 1.COUNT(*)与COUNT(列)哪个更快 drop table t purge; create table t as ...

  7. Oracle 性能优化的基本方法

    Oracle 性能优化的基本方法概述 1)设立合理的性能优化目标. 2)测量并记录当前性能. 3)确定当前Oracle性能瓶颈(Oracle等待什么.哪些SQL语句是该等待事件的成分). 4)把等待事 ...

  8. 【转载】我眼中的Oracle性能优化

    我眼中的Oracle性能优化 大家对于一个业务系统的运行关心有如下几个方面:功能性.稳定性.效率.安全性.而一个系统的性能有包含了网络性能.应用性能.中间件性能.数据库性能等等. 今天从数据库性能的角 ...

  9. Oracle性能优化之SQL语句

    1.SQL语句执行过程 1.1 SQL语句的执行步骤 1)语法分析,分析语句的语法是否符合规范,衡量语句中各表达式的意义. 2)语义分析,检查语句中涉及的所有数据库对象是否存在,且用户有相应的权限. ...

随机推荐

  1. 使用ffmepg的lib库调试,debug版本下调试无问题,但release版本会出现跑飞的现象

    如题(“使用ffmepg的lib库调试,debug版本下调试无问题,但release版本会出现跑飞的现象”). 今天使用ffmpeg进行宿放和颜色格式转换,很简单的代码,却折腾了我一天,这里说来就气啊 ...

  2. 【Java面试题】17 如何把一个逗号分隔的字符串转换为数组? 关于String类中split方法的使用,超级详细!!!

    split 方法:将一个字符串分割为子字符串,然后将结果作为字符串数组返回. stringObj.split([separator],[limit])参数:stringObj   必选项.要被分解的 ...

  3. Centos6.8搭建Git服务(git版本可选)

    搭建Git服务器需要准备一台运行Linux的机器,本文以Centos6.8纯净版系统为例搭建自己的Git服务. 准备工作:以root用户登陆自己的Linux服务器. 第一步安装依赖库 [root@lo ...

  4. c++ word类型

    word就是16位的数据 随着机器的发展,C++语言本身并没有规定short的位数,不一定是十六位的(随着计算机的发展,可能改变).但word将永远是16位的--机器发展后只需要修改,typedef ...

  5. apache Storm学习之三-消息可靠性

    4.1 简介 storm可以确保spout发送出来的每个消息都会被完整的处理.本章将会描述storm体系是如何达到这个目标的,并将会详述开发者应该如何使用storm的这些机制来实现数据的可靠处理. 4 ...

  6. Unity3D手机平台分辨率自动匹配教程

    1. 下载NGUI 2. 导入NGUI package到Unity. 这时候菜单上会出现NGUI的菜单栏: 3. 将默认的Main Camera删掉,通过菜单栏NGUI->Create新建一个2 ...

  7. python中 decimal不能直接应用于float数据

    今天将程序部署到linux服务器上,出现很奇怪的现象. 在windows上运行正常的decimal,到了linux环境下不能正常运行,报出下面的错误. 代码为: income = get_dashbo ...

  8. go语言的time.Sleep

    首先:time.sleep单位为:1ns (纳秒) 转换单位: 1纳秒 =1000皮秒      1纳秒 =0.001 微秒      1纳秒 =0.000 001毫秒        1纳秒 =0.0 ...

  9. 第四章 Spring.Net 如何管理您的类___自定义对象行为

    Spring.Net 一直讲求 ” 配置应用程序“,有一种需求在实际开发中不太常用,却非常有用 -> 配置对象的行为,Spring.Net 也能够完美的实现.Spring.Net 通过几个专门的 ...

  10. 高级类特性----抽象类(abstract class)

    抽象类(abstract class) 随着继承层次中一个个新子类的定义,类变得越来越具体,而父类则更一般,更通用.类的设计应该保证父类和子类能够共享特征.有时将一个父类设计得非常抽象,以至于它没有具 ...