oracle 数据执行计划,Oracle 常见的执行计划步骤(explain结果的Description数据参考)...

在PL/SQL中 执行explain plain for  select ...

查看Description 数据参考:

Oracle常见的执行计划步骤

这里我们介绍一些常见的执行计划中的步骤及算法。

1、表访问路径

(1)TABLE ACCESS

FULL:全表扫描。它会访问表中的每一条记录(读取高水位线以内的每一个数据块)。

CLUSTER:通过索引簇的键来访问表。

BY INDEX ROWID:通过指定ROWID来访问表中的单条记录。ROWID是访问记录的最快方式,通常由索引访问得到。

BY USER ROWID:提供一个绑定变量、字面变量或WHERE CURRENT OF CURSOR子句来通过ROWID进行访问。

BY GLOBAL INDEX ROWID:通过由全局分区索引来获得ROWID,然后进行表访问。该访问出现在分区表中。

BY LOCAL INDEX ROWID:通过由局部分区索引获得ROWID,然后进行表访问。该访问出现在分区表中。

(2)EXTERNAL TABLE ACCESS:访问外部表。

(3)RESULT CACHE:这个SQL结果集可能来自结果集缓存。

(4)MAT_VIEW REWRITE ACCESS:SQL被重写以利用物化视图。

2、索引操作

(1)AND-EQUAL:合并来自一个或多个索引的结果集。

(2)INDEX

UNIQUE SCAN:只返回一条记录的地址(ROWID)的索引扫描。

RANGE SCAN:返回多条记录的ROWID的索引检索。一般出现这样的访问,是因为出现了区间操作符。

FULL SCAN:按照索引键的顺序扫描整个索引。

SKIP SCAN:组合索引键中非前导列索引检索。

FULL SCAN(MAX/MIN):检索索引中的最高或最低的索引条目。

FAST FULL SCAN:按照块顺序扫描每一个索引的条目,可能会使用多块读取。

(3)DOMAIN INDEX:应用域索引。

3、位图索引操作

(1)BITMAP

CONVERSION:将位转换为ROWID或相反。

INDEX:从位图中撮一个值或一个范围的值。

MERGE:合并位图。

MINUS:从一个位图减去另一个位图。

OR:对两个位图进行OR操作。

4、表连接操作

(1)CONNECT BY:对前一个步骤的输出结果执行一个层次化的自连接操作。

(2)MERGE JOIN:对前一个步骤的输出结果执行一个合并连接。

(3)NESTED LOOP:对前一个步骤执行嵌套循环连接。对上一层结果集的每一行,都会扫描下一层结果集以找到匹配记录。

(4)HASH JOIN:对两个记录进行散列连接。

(5)任意连接操作

OUTER:外连接

ANTI:反连接

SEMI:反连接

CARTESIAN:一个结果集中的每一条记录都与另一个结果集中的每一条记录进行连接。

5、集合操作

CONCATENATION:与显式指定一个UNION子句一样,多个结果集被按照同样的方式做合并。它通常发生在对索引列使用OR运算时。

INTERSECTION:对两个结果进行比较,只返回两个结果集中都存在的记录。

MINUS:除了在第二个结果集中出现的记录外,返回第一个结果集中的所有记录。

UNION-ALL:对两个结果集进行合并,并返回两个结果集中的所有记录。

UNION:与UNION-ALL相同,但是它不返回重复记录。

VIEW:访问一个视图定义或或创建一个临时表用于存放结果集。

6、分区操作

(1)PARTITION

SINGLE:访问单个分区。

ITERATOR:访问多个分区。

ALL:访问所有分区。

INLIST:基于IN列表中的值来访问分区。

7、汇总操作

(1)COUNT:使用COUNT函数进计算。

STOPKEY:计算结果中的记录,当达到一定数量时,就停止计算。这通常发生在使用了WHERE子句且指定了ROWNUM,如:WHERE ROWNUM <= 10。

(2)BUFFER SORT:对临时结果集做一次内在排序。

(3)HASH GROUP BY:使用散列进行分组操作。

(4)INLIST ITERATOR:对IN中的每一个值都实现一次子操作。

(5)SORT

GROUP BY:为了满足GROUP BY而对结果集进行排序。

AGGREGATE:当在已分组好的数据上使用分组函数时,会出现此操作。

JOIN:了进行合并连接而对记录进行排序。

UNIQUE:排除重复记录的排序操作,通常是使用DISTINCT子句。

GROUP BY:为满足GROUP BY子句,对结果集进行排序分组。

8、其他操作

(1)FOR UPDATE:使用了FOR UPDATE子句。

(2)COLLECTION ITERATOR:使用了表函数提取记录。

(3)FAST DUAL:访问DUAL表。

(4)FILTER:从结果集中排除掉不匹配选取条件的记录。

(5)REMOTE:通过数据库连接,访问一个外部的数据库。

(6)FIRST ROW:获取查询的第一条记录。

(7)SEQUENCE:使用了Oracle序列。

(8)LOAD AS SELECT:使用SELECT进行直接路径的INSERT操作。

(9)FIXED TABLE:访问固定的(X$/V$)表。

(10)FIXED INDEX:访问固定的索引。

(11)WINDOW BUFFER:支持分析函数的内部操作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/355529.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CSS3实现Loading动画特效

查看效果&#xff1a;http://hovertree.com/texiao/css3/43/代码如下&#xff1a; <!DOCTYPE html> <html> <head><meta charset"UTF-8"><title>css3 loading等待加载代码 - 何问起</title><style>keyframes move {from {…

xfs支持oracle,让linux内核支持xfs文件系统

作/译者&#xff1a;叶金荣(Email:)&#xff0c;来源&#xff1a;http://imysql.cn&#xff0c;转载请注明作/译者和出处&#xff0c;并且不能用于商业用途&#xff0c;违者必究。 XFS 简介XFS 最初是由 Silicon Graphics&#xff0c;Inc. 于 90 年代初开发的。那时&#xff0c…

c语言打印菱形_没事了,搞一下C语言打印大小可变的菱形图案?

问题分析&#xff1a;菱形的大小size其实就是中间行中*号的个数&#xff0c;也是整个菱形的行数&#xff0c;其值必是奇数。问题的关键之一是如何确定每行中*号的个数。经过分析得知&#xff1a;当行i<(size1)/2时&#xff0c;该行的*号个数为n2*i-1&#xff0c;否则n2*&…

ListView 与 RecyclerView的创建与使用的异同

相同&#xff1a;1.在使用时&#xff0c;都需要先获取&#xff0c;再新建适配器&#xff0c;再用serAdapter方法绑定适配器 2.创建数据List&#xff0c;都是新建ArrayList 不同&#xff1a;1.在新建适配器类时&#xff0c;listview的适配器继承自ArrayAdapter,recyclerview的适…

测试驱动开发 测试前移_测试驱动开发–双赢策略

测试驱动开发 测试前移敏捷从业人员谈论测试驱动开发 &#xff08;TDD&#xff09;&#xff0c;所以许多关心代码质量和可操作性的开发人员也是如此。 我曾几何时&#xff0c;不久前设法阅读了有关TDD的文章。 据我了解&#xff0c;TDD的关键是&#xff1a; 编写测试&#xff0…

android timer后函数继续执行_Android内存异常机制(用户空间)_JE

常见的Android稳定性异常&#xff0c;有内核异常和Android层异常。内核异常也就是常说的“kernel panic”&#xff0c;简称KE异常&#xff1b;Android层异常又分为java层crash和Native层crash&#xff0c;简称JE、NE异常。此外&#xff0c;Android层异常还有应用ANR和system_Se…

server数据库与oracle,浅析Oracle和SQL Server-数据库专栏,ORACLE

t-sql是sql server的语言引擎&#xff0c;而oracle的语言引擎却是plsql。这两种查询语言都对ansi sql-92标准进行了扩展以提供额外的支持力度。你所创建的应用程序几乎都要用到这些补充特性。本文就对最常用的、非标准的oracle扩展进行了说明&#xff0c;同时还要介绍下如何对这…

AutoMapper

先说说DTO DTO是个什么东东&#xff1f; DTO&#xff08;Data Transfer Object&#xff09;就是数据传输对象&#xff0c;说白了就是一个对象&#xff0c;只不过里边全是数据而已。 为什么要用DTO? 1、DTO更注重数据&#xff0c;对领域对象进行合理封装&#xff0c;从而不会将…

Wildfly Swarm,朝着成熟和一小部分贡献

我最近关注的项目之一是Wildfly Swarm 。 最终&#xff0c;在今年的JBoss BOF Devoxx期间&#xff0c;我的考虑更改项目名称的请求没有通过&#xff08;由于与著名的Docker Swarm发生冲突&#xff09;。 那么什么是Wildfly Swarm&#xff1f; 简而言之&#xff0c;就是Wildfly…

oracle10 数据库审计,Oracle数据库审计用法实例

本节是从ORACLE METALINK的DOC:167293.1翻译整理而来的。通过举例的方式来说明ORACLE审计的用法。ORACLE的审计可以从语句级、对象本节是从Oracle METALINK的DOC:167293.1翻译整理而来的。通过举例的方式来说明ORACLE审计的用法。ORACLE的审计可以从语句级、对象级和权限级几个…

cefsharp 发送请求服务器_超高性能管线式HTTP请求(实践·原理·实现)

来源:https://www.cnblogs.com/lulianqi/p/8167526.html这里的高性能指的就是网卡有多快请求发送就能有多快&#xff0c;基本上一般的服务器在一台客户端的压力下就会出现明显延时。该篇实际是介绍pipe管线的原理&#xff0c;下面主要通过其高性能的测试实践&#xff0c;解析背…

(Oracle)DDL及其数据泵导入导出(impdp/expdp)

create tablespace ybp_dev datafile G:\app\Administrator\oradata\health\ybp_dev1.dbf size 10m autoextend on;create user 用户名 default tablespace 表空间名 identified by 用户密码;grant connect,resource to 用户;测试连接 conn mpi/1234删除表空间 drop tablespace…

查看oracle的块大小,查看操作系统块大小

查看操作系统块大小oracle建库一般设置数据库块大小8192K&#xff0c;一般是OS块大小的整数倍&#xff0c;要避免数据库块大小小于系统块大小的情况。1.在WINDOWS系统上&#xff0c;可以用命令fsutil来查看&#xff0c;测试如下&#xff1a;C:\Documents and Settings\administ…

java jsr_分叉并加入Java 7 – JSR 166并发实用程序

java jsrJava 7最有趣的改进之一是对并发的更好支持。 借助JSR 166并发实用程序&#xff0c;我们获得了一些非常有用的并发改进。 在我看来&#xff0c;fork-join库在软件工程中具有很高的实际应用潜力。 Fork and join为算法提供了非常简单的编程模型&#xff0c;可以将其实现…

python标准库模块_Python标准库模块之heapq

该模块提供了堆排序算法的实现。堆是二叉树&#xff0c;最大堆中父节点大于或等于两个子节点&#xff0c;最小堆父节点小于或等于两个子节点。 创建堆 heapq有两种方式创建堆&#xff0c; 一种是使用一个空列表&#xff0c;然后使用heapq.heappush()函数把值加入堆中&#xff0…

quartz Cron-Expression的表达式

关于quartz Cron-Expression的表达式&#xff0c;这个博客写的很好 ttp://www.cnblogs.com/yaowen/p/3779284.html CronTrigger配置完整格式为&#xff1a; [秒] [分] [小时] [日] [月] [周] [年] Q&#xff1a; C# quartz设置job间隔5min执行一次 A:0 30/5 16 * * ? 每…

oracle 启用闪回数据库,如何启用Oracle10g闪回数据库特性

为什么80%的码农都做不了架构师&#xff1f;>>>1.确认当前模式SYS AS SYSDBA on 29-MAR-05 >select flashback_on from v$database;FLA---NO2.检查/修改恢复区设置SYS AS SYSDBA on 29-MAR-05 >show parameter db_recovery_file_destNAME TYPE VALUE-----------…

nvme通用驱动_对领域驱动设计的理解与实践

领域驱动设计(Domain-Driven-Design)是一种针对大型复杂系统的领域建模与分析方法论。2003 年&#xff0c;Eric Evans 发布《Domain-Driven Design: Tackling Complexity in the Heart of Software》(领域驱动设计&#xff1a;软件核心复杂性应对之道)&#xff0c;其中定义了DD…

为什么不应该用Stream forEach替换for循环的3个原因

太棒了&#xff01; 我们正在将代码库迁移到Java8。我们将用函数替换所有内容。 扔掉设计模式。 删除面向对象。 对&#xff01; 我们走吧&#xff01; 等一下 Java 8已经问世了一年多&#xff0c;而这种兴奋又回到了日常业务中。 baeldung.com从2015年5月开始执行的一项非代…

Obj文件格式

obj文件是wavefront公司定义的3d模型文本格式数据文件 只支持模型三角面数据和材质信息&#xff0c;无动画功能支持 其中几何信息由.obj文件提供&#xff0c;材质信息由.mtl文件定义 文件以行为单位表示一条数据&#xff0c;可以根据行开头的字符判断后续的内容 其中 # 字符表示…