暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 19C PLAN_TABLE的OPERATION 和 OPTION 列值

原创 Asher.HU 2021-02-04
702


该表列出了PLAN_TABLE的OPERATION和OPTIONS列的每种组合及其在执行计划中的含义。

表7-2 EXPLAIN PLAN产生的OPERATION和OPTIONS值

Operation Option描述

AND-EQUAL

接受多组rowid的操作,返回这些交集的交集,从而消除重复项。用于单列索引访问路径。

BITMAP

CONVERSION

TO ROWIDS 将位图表示形式转换为可用于访问表的实际rowid。

FROM ROWIDS 将rowid转换为位图表示形式。

COUNT 如果不需要实际值,则返回rowid的数量。

BITMAP

INDEX

SINGLE VALUE 在位图中查找索引中的单个键值。

RANGE SCAN 检索键值范围的位图。

FULL SCAN 如果没有开始或停止键,则对位图索引执行完整扫描。

BITMAP

MERGE

将范围扫描产生的几个位图合并为一个位图。

BITMAP

MINUS

从另一个位图减去一个位图的位。行源用于否定谓词。仅当存在非否定谓词产生可从中进行减法的位图时,此选项才可用。

BITMAP

OR

计算OR两个位图的按位。

BITMAP

AND

计算AND两个位图的按位。

BITMAP

KEY ITERATION

从表行源获取每一行,并从位图索引中找到相应的位图。然后,在以下BITMAP MERGE操作中将这组位图合并为一个位图

CONNECT BY

以层次结构顺序检索包含CONNECT BY子句的查询的行

CONCATENATION

接受多行集合的操作返回所有集合的并集。

COUNT

计算从表中选择的行数的操作。

COUNT

STOPKEY

计数操作,其中返回的行数受子句中ROWNUM表达式限制WHERE

CUBE JOIN

连接左侧的表或视图和右侧的多维数据集。

请参阅《Oracle数据库SQL语言参考》以了解NO_USE_CUBEUSE_CUBE提示。

CUBE JOIN

ANTI

对左侧的表或视图使用反联接,对右侧的立方体使用反联接。

CUBE JOIN

ANTI SNA

对左侧的表或视图和右侧的多维数据集使用反连接(单面null感知)。右侧(多维数据集一侧)的连接列为NOT NULL

CUBE JOIN

OUTER

在表或视图的左侧使用外部联接,在右侧的多维数据集使用外部联接。

CUBE JOIN

RIGHT SEMI

将右半联接用于左侧的表或视图,以及右侧的多维数据集。

CUBE SCAN

使用内部联接进行所有多维数据集访问。

CUBE SCAN

PARTIAL OUTER

对至少一个维度使用外部联接,对其他维度使用内部联接。

CUBE SCAN

OUTER

使用外部联接进行所有多维数据集访问。

DOMAIN INDEX

从域索引中检索一个或多个rowid。选项列包含用户定义的域索引成本函数(如果有)提供的信息。

FILTER

接受一组行的操作,消除其中的一些行,然后返回其余行。

FIRST ROW

仅检索查询选择的第一行。

FOR UPDATE

检索和锁定包含FOR UPDATE子句的查询所选择的行的操作

HASH

GROUP BY

用于将带有GROUP BY子句的查询的一组行散列成组的操作

HASH

GROUP BY PIVOT

用于将带有GROUP BY子句的查询的一组行散列成组的操作PIVOT选项指示HASH GROUP BY操作员特定于轴的优化

HASH JOIN

(这些是联接操作。)

连接两组行并返回结果的操作。此联接方法对于联接大型数据集(DSS,批处理)很有用。连接条件是访问第二个表的有效方法。

查询优化器使用两个表/数据源中较小的一个在内存中的连接键上构建哈希表。然后,它扫描更大的表,探测哈希表以找到联接的行。

HASH JOIN

ANTI

哈希(左)反连接

HASH JOIN

SEMI

哈希(左)半联接

HASH JOIN

RIGHT ANTI

哈希右抗联接

HASH JOIN

RIGHT SEMI

哈希右半联接

HASH JOIN

OUTER

哈希(左)外部联接

HASH JOIN

RIGHT OUTER

哈希右外部联接

INDEX

(这些是访问方法。)

UNIQUE SCAN

从索引中检索单个rowid。

INDEX

RANGE SCAN

从索引中检索一个或多个rowid。索引值以升序扫描。

INDEX

RANGE SCAN DESCENDING

从索引中检索一个或多个rowid。索引值按降序扫描。

INDEX

FULL SCAN

没有开始键或停止键时,从索引中检索所有rowid。索引值以升序扫描。

INDEX

FULL SCAN DESCENDING

没有开始键或停止键时,从索引中检索所有rowid。索引值按降序扫描。

INDEX

FAST FULL SCAN

使用多块读取检索所有rowid(和列值)。无法定义排序顺序。与仅对索引列进行全表扫描比较。仅适用于基于成本的优化器。

INDEX

SKIP SCAN

从级联索引中检索行标识符,而无需使用索引中的前导列。仅适用于基于成本的优化器。

INLIST ITERATOR

IN-list谓词中的每个值迭代计划中的下一个操作

INTERSECTION

接受两组行并返回交集的操作,从而消除了重复项。

MERGE JOIN

(这些是联接操作。)

该操作接受两组行,每组行均按一个值排序,将一组中的每一行与另一组中的匹配行进行组合,然后返回结果。

MERGE JOIN

OUTER

合并联接操作以执行外部联接语句。

MERGE JOIN

ANTI

合并反连接。

MERGE JOIN

SEMI

合并半联接。

MERGE JOIN

CARTESIAN

可能是由于1个或多个表与语句中的任何其他表没有连接条件而导致的。即使有联接也可能发生,并且可能未将其标记为CARTESIAN计划中的标志

CONNECT BY

按层次结构顺序检索包含CONNECT BY子句的查询的行

MAT_VIEW REWRITE ACCESS

(这些是访问方法。)

FULL

从实例化视图中检索所有行。

MAT_VIEW REWRITE ACCESS

SAMPLE

从实例化视图中检索采样行。

MAT_VIEW REWRITE ACCESS

CLUSTER

根据索引的群集键的值从实例化视图中检索行。

MAT_VIEW REWRITE ACCESS

HASH

根据散列键值从物化视图中检索行。

MAT_VIEW REWRITE ACCESS

BY ROWID RANGE

根据行标识符范围从实例化视图中检索行。

MAT_VIEW REWRITE ACCESS

SAMPLE BY ROWID RANGE

根据行标识符范围从实例化视图中检索采样行。

MAT_VIEW REWRITE ACCESS

BY USER ROWID

如果物化视图行是使用用户提供的rowid定位的。

MAT_VIEW REWRITE ACCESS

BY INDEX ROWID

如果物化视图未分区,并且使用索引定位行。

MAT_VIEW REWRITE ACCESS

BY GLOBAL INDEX ROWID

如果实例化视图已分区,并且仅使用全局索引来定位行。

MAT_VIEW REWRITE ACCESS

BY LOCAL INDEX ROWID

如果实例化视图已分区,并且使用一个或多个本地索引以及可能的某些全局索引来定位行。

分区边界:

分区边界可能通过以下方式计算:

PARTITION一步,在这种情况下,PARTITION_STARTPARTITION_STOP列值复制该PARTITION步骤中存在的值,并且PARTITION_ID包含该PARTITION步骤的ID 可能的值PARTITION_STARTPARTITION_STOPNUMBER(n)的,KEYINVALID

MAT_VIEW REWRITE ACCESSINDEX步骤本身,在此情况下,PARTITION_ID包含ID的步骤的。对于可能的值PARTITION_STARTPARTITION_STOPNUMBER(N) ,KEY 只),和 ROWREMOVE_LOCATIONMAT_VIEW REWRITEACCESSINVALID

MINUS

该操作接受两组行并返回出现在第一组中但不出现在第二组中的行,从而消除了重复项。

NESTED LOOPS

(这些是联接操作。)

接受两组行的操作,一个外部组和一个内部组。Oracle数据库将外部集的每一行与内部集的每一行进行比较,返回满足条件的行。此联接方法对于联接小的数据子集(OLTP)很有用。连接条件是访问第二个表的有效方法。

NESTED LOOPS

OUTER

嵌套循环操作执行外部join语句。

PARTITION

PARTITION_STARTPARTITION_STOP指定的范围内,为每个分区迭代计划中的下一个操作PARTITION描述了适用于单个分区对象(表或索引)或一组等分区对象(分区表及其本地索引)的分区边界。分区边界由的值提供PARTITION_STARTPARTITION_STOPPARTITION有关分区启动和停止的有效值,参见表6-2

PARTITION

SINGLE

访问一个分区。

PARTITION

ITERATOR

访问许多分区(一个子集)。

PARTITION

ALL

访问所有分区。

PARTITION

INLIST

与迭代器类似,但基于IN-list谓词。

PARTITION

INVALID

表示要访问的分区集为空。

POLYMORPHIC TABLE FUNCTION

指示多态表函数的行源,该表函数是一个表函数,其返回类型由其参数确定。

PX ITERATOR

BLOCK CHUNK

在一组并行执行服务器中,将对象划分为块或块范围。

PXCOORDINATOR

实现查询协调器,该查询协调器使用并行执行服务器控制,计划和执行其下方的并行计划。它也代表一个序列化点,因为计划部分的并行执行,并且始终在其下进行PX SEND QC操作。

PX PARTITION

PARTITION除了它出现在并行计划中之外,其语义与常规操作相同。

PX RECEIVE

显示使用者/接收者并行执行节点从在PX SEND节点上执行的发送/生产者(QC或并行执行服务器)读取重新分区的数据。该信息以前显示在该DISTRIBUTION列中。请参阅表7-1

PX SEND

QC (RANDOM), HASH RANGE

实现在两组并行执行服务器之间发生的分发方法。显示两组之间的边界,以及如何在发送方/生产方(QC或一方)上对数据进行重新分区。此信息以前显示在该DISTRIBUTION列中。请参阅表7-1

REMOTE

从远程数据库中检索数据。

SEQUENCE

涉及访问序列值的操作。

SORT

AGGREGATE

将组函数应用于一组选定的行后,检索单个行。在这种情况下,数据库对单个行进行“排序”。

SORT

UNIQUE

对一组行进行排序以消除重复的操作。

SORT

GROUP BY

用于将带有GROUP BY子句的查询中的一组行进行分组的操作

SORT

GROUP BY PIVOT

用于将带有GROUP BY子句的查询中的一组行进行分组的操作PIVOT选项指示SORT GROUP BY操作员特定于轴的优化

SORT

JOIN

在合并联接之前对一组行进行排序的操作。

SORT

ORDER BY

使用ORDER BY子句对查询的一组行进行排序的操作

TABLE ACCESS

(这些是访问方法。)

FULL

从表中检索所有行。

TABLE ACCESS

SAMPLE

从表中检索采样行。

TABLE ACCESS

CLUSTER

根据索引的群集键的值从表中检索行。

TABLE ACCESS

HASH

根据哈希簇键值从表中检索行。

TABLE ACCESS

BY ROWID RANGE

根据rowid范围从表中检索行。

TABLE ACCESS

SAMPLE BY ROWID RANGE

根据rowid范围从表中检索采样行。

TABLE ACCESS

BY USER ROWID

如果使用用户提供的rowid查找表中的行。

TABLE ACCESS

BY INDEX ROWID

如果表是未分区的并且使用索引来定位行。

TABLE ACCESS

BY GLOBAL INDEX ROWID

如果表已分区并且仅使用全局索引定位行。

TABLE ACCESS

BY LOCAL INDEX ROWID

如果表已分区并且使用一个或多个本地索引以及可能的某些全局索引来定位行。

分区边界:

分区边界可能通过以下方式计算:

PARTITION一步,在这种情况下,PARTITION_STARTPARTITION_STOP列值复制该PARTITION步骤中存在的值,并且PARTITION_ID包含该PARTITION步骤的ID 可能的值PARTITION_STARTPARTITION_STOPNUMBER(n)的,KEYINVALID

TABLE ACCESSINDEX步骤本身,在此情况下,PARTITION_ID包含ID的步骤的。对于可能的值PARTITION_STARTPARTITION_STOPNUMBER(N) ,KEY 只),和 ROWREMOVE_LOCATIONTABLE ACCESSINVALID

TRANSPOSE

PIVOT运算通过转置的结果GROUP BY以生成最终的数据来评估运算

UNION

该操作接受两组行,并返回这两组行的并集,从而消除重复项。

UNPIVOT

将数据从列旋转到行的操作。

VIEW

执行视图查询,然后将结果行返回到另一个操作的操作。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论