在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:支持分析函数的内部操作。
分享到:
相关推荐
1. 执行计划:执行计划是Oracle数据库为了执行SQL语句而规划的一系列操作步骤。它包含了从何处获取数据、如何处理数据以及数据处理的顺序等信息。 2. 成本估算:Oracle使用一种基于成本的优化器(CBO,Cost-Based ...
在Oracle数据库系统中,执行计划是数据库为了执行SQL查询而制定的一种操作策略,它详细描述了数据如何被访问、如何排序、如何过滤等一系列步骤。执行计划的稳定性涉及到查询性能的可预测性和一致性,这对于数据库...
Oracle解释计划是指Oracle在执行SQL语句之前所生成的计划,它详细描述了数据库如何检索数据以及执行相关操作的步骤。 在Oracle中获取执行计划有多种方法,以下是几种常见的方法: 1. 使用EXPLAIN PLAN语句:这是一...
执行计划是Oracle用来决定如何最有效地执行SQL语句的一系列步骤。这些步骤可能包括表扫描、索引扫描、排序、连接操作等。执行计划由优化器根据SQL语句的具体内容生成,并考虑到各种因素,如表的统计信息、索引的存在...
### Oracle如何使用AUTOTRACE查看执行计划 在Oracle数据库管理中,查看SQL语句的执行计划是一项重要的技能,这有助于优化查询性能、诊断性能问题等。AUTOTRACE是Oracle提供的一种强大的工具,用于自动展示SQL语句的...
执行计划是Oracle数据库处理SQL查询的一种步骤序列,它详细描述了数据如何从表中提取、如何进行排序或聚合,以及如何返回到应用程序。理解执行计划对于优化SQL语句和提高数据库性能至关重要。 1. **执行计划的理解...
执行计划是Oracle优化器根据统计信息和优化算法生成的用于执行SQL语句的具体步骤说明,它决定了SQL语句如何访问数据库中的数据,如何执行join操作,以及如何返回查询结果。 ### 执行计划的重要性 执行计划贯穿于...
执行计划是指Oracle数据库根据特定的SQL语句所制定的一系列操作步骤,以决定如何最有效地检索所需数据。本文旨在介绍如何生成及分析Oracle SQL执行计划,帮助读者更好地理解其工作原理,从而提高SQL调优的能力。 ##...
Oracle执行计划是数据库执行SQL语句前确定的操作步骤序列。优化器根据表的统计信息、存储参数、可用的执行路径等生成执行计划,以实现最快的查询速度。执行计划通常用一系列数据库操作符来表示,这些操作符及其顺序...
Oracle SQL执行计划是指Oracle数据库为SQL语句制定的一系列执行步骤,这些步骤指导数据库如何高效地访问数据和执行SQL语句。执行计划对于Oracle数据库的性能调优至关重要,因为它能够揭示SQL语句的执行细节,帮助...
### Oracle 获取执行计划全部方法详解 #### 方法一:Explain Plan for 方式 - **应用场景**:当某个 SQL 查询执行时间过长甚至无法返回结果时,这种方法尤其适用。 - **步骤**: 1. 使用 `EXPLAIN PLAN FOR` 命令...
在Oracle中,执行计划是数据库优化器根据SQL语句特性生成的一系列步骤,用于指导数据库如何执行查询以获取数据。一个高效的执行计划能够显著提升查询性能,降低资源消耗,对于数据库性能优化至关重要。 #### 查看...
在Oracle数据库管理中,了解查询的实际执行计划是优化SQL性能的关键步骤。这有助于识别潜在的瓶颈,例如排序操作是否在内存中完成还是需要利用磁盘空间。以下将详细阐述如何在Oracle命令行环境中查看实际的执行计划...
执行计划是指Oracle数据库优化器为执行特定SQL语句所选择的一系列操作步骤。通过查看执行计划,我们可以了解到SQL语句是如何被处理的,包括数据的访问方式、排序方法等。这有助于我们发现潜在的问题,并针对性地进行...
执行计划揭示了Oracle如何处理一个SQL查询,包括数据的访问路径、使用的索引、排序方式以及表之间的连接顺序等。本文将深入探讨如何查看执行计划,并提供优化SQL的策略。 一、执行计划的概念 执行计划是Oracle...
Oracle 执行计划是数据库管理系统在处理SQL查询时制定的一系列步骤,用于高效地检索和处理数据。它是Oracle数据库优化器(Optimizer)根据统计信息、成本估算和已存在的索引等信息生成的。优化器有两种主要的工作...
Oracle执行计划是数据库管理系统在处理SQL语句时的预估工作流程,它是Oracle优化器根据当前数据分布、索引情况和系统资源等信息选择的最佳执行策略。了解和分析执行计划对于提升SQL语句的性能至关重要。 一、生成...
Oracle 中的 explain_plan 是一个强大的分析工具,能够帮助用户了解 SQL 语句的执行计划,通过它可以了解 Oracle 是如何连接表、使用什么方式扫描表(索引扫描或全表扫描)以及使用到的索引名称。下面详细讲解 ...
Oracle 执行计划的生成方式有三种:Explain、Autotrace 和其他工具。其中,Explain 是通过 Execute Plan 语句生成执行计划的,Autotrace 是通过设置 autotrace 参数生成执行计划的。 在 Oracle 中,生成执行计划...