执行计划的操作类型
2011-11-25 11:21
127 查看
Table 19-3 OPERATION and OPTIONS Values Produced by EXPLAIN PLAN
Operation | Option | Description |
---|---|---|
AND-EQUAL | . | Operation accepting multiple sets of rowids, returning the intersection of the sets, eliminating duplicates. Used for the single-column indexes access path. |
BITMAP | CONVERSION | TO ROWIDSconverts bitmap representations to actual rowids that can be used to access the table. FROM ROWIDSconverts the rowids to a bitmap representation. COUNTreturns the number of rowids if the actual values are not needed. |
BITMAP | INDEX | SINGLE VALUElooks up the bitmap for a single key value in the index. RANGE SCANretrieves bitmaps for a key value range. FULL SCANperforms a full scan of a bitmap index if there is no start or stop key. |
BITMAP | MERGE | Merges several bitmaps resulting from a range scan into one bitmap. |
BITMAP | MINUS | Subtracts bits of one bitmap from another. Row source is used for negated predicates. Can be used only if there are nonnegated predicates yielding a bitmap from which the subtraction can take place. An example appears in "Viewing Bitmap Indexes with EXPLAIN PLAN". |
BITMAP | OR | Computes the bitwise ORof two bitmaps. |
BITMAP | AND | Computes the bitwise ANDof two bitmaps. |
BITMAP | KEY ITERATION | Takes each row from a table row source and finds the corresponding bitmap from a bitmap index. This set of bitmaps are then merged into one bitmap in a following BITMAP MERGEoperation. |
CONNECT BY | . | Retrieves rows in hierarchical order for a query containing a CONNECT BYclause. |
CONCATENATION | . | Operation accepting multiple sets of rows returning the union-all of the sets. |
COUNT | . | Operation counting the number of rows selected from a table. |
COUNT | STOPKEY | Count operation where the number of rows returned is limited by the ROWNUMexpression in the WHEREclause. |
DOMAIN INDEX | . | Retrieval of one or more rowids from a domain index. The options column contain information supplied by a user-defined domain index cost function, if any. |
FILTER | . | Operation accepting a set of rows, eliminates some of them, and returns the rest. |
FIRST ROW | . | Retrieval of only the first row selected by a query. |
FOR UPDATE | . | Operation retrieving and locking the rows selected by a query containing a FOR UPDATEclause. |
HASH | GROUP BY | Operation hashing a set of rows into groups for a query with a GROUP BYclause. |
HASH JOIN (These are join operations.) | . | Operation joining two sets of rows and returning the result. This join method is useful for joining large data sets of data (DSS, Batch). The join condition is an efficient way of accessing the second table. Query optimizer uses the smaller of the two tables/data sources to build a hash table on the join key in memory. Then it scans the larger table, probing the hash table to find the joined rows. |
HASH JOIN | ANTI | Hash (left) antijoin |
HASH JOIN | SEMI | Hash (left) semijoin |
HASH JOIN | RIGHT ANTI | Hash right antijoin |
HASH JOIN | RIGHT SEMI | Hash right semijoin |
HASH JOIN | OUTER | Hash (left) outer join |
HASH JOIN | RIGHT OUTER | Hash right outer join |
INDEX (These are access methods.) | UNIQUE SCAN | Retrieval of a single rowid from an index. |
INDEX | RANGE SCAN | Retrieval of one or more rowids from an index. Indexed values are scanned in ascending order. |
INDEX | RANGE SCAN DESCENDING | Retrieval of one or more rowids from an index. Indexed values are scanned in descending order. |
INDEX | FULL SCAN | Retrieval of all rowids from an index when there is no start or stop key. Indexed values are scanned in ascending order. |
INDEX | FULL SCAN DESCENDING | Retrieval of all rowids from an index when there is no start or stop key. Indexed values are scanned in descending order. |
INDEX | FAST FULL SCAN | Retrieval of all rowids (and column values) using multiblock reads. No sorting order can be defined. Compares to a full table scan on only the indexed columns. Only available with the cost based optimizer. |
INDEX | SKIP SCAN | Retrieval of rowids from a concatenated index without using the leading column(s) in the index. Introduced in Oracle9i. Only available with the cost based optimizer. |
INLIST ITERATOR | . | Iterates over the next operation in the plan for each value in the IN-list predicate. |
INTERSECTION | . | Operation accepting two sets of rows and returning the intersection of the sets, eliminating duplicates. |
MERGE JOIN (These are join operations.) | . | Operation accepting two sets of rows, each sorted by a specific value, combining each row from one set with the matching rows from the other, and returning the result. |
MERGE JOIN | OUTER | Merge join operation to perform an outer join statement. |
MERGE JOIN | ANTI | Merge antijoin. |
MERGE JOIN | SEMI | Merge semijoin. |
MERGE JOIN | CARTESIAN | Can result from 1 or more of the tables not having any join conditions to any other tables in the statement. Can occur even with a join and it may not be flagged as CARTESIANin the plan. |
CONNECT BY | . | Retrieval of rows in hierarchical order for a query containing a CONNECT BYclause. |
MAT_VIEW REWITE ACCESS (These are access methods.) | FULL | Retrieval of all rows from a materialized view. |
MAT_VIEW REWITE ACCESS | SAMPLE | Retrieval of sampled rows from a materialized view. |
MAT_VIEW REWITE ACCESS | CLUSTER | Retrieval of rows from a materialized view based on a value of an indexed cluster key. |
MAT_VIEW REWITE ACCESS | HASH | Retrieval of rows from materialized view based on hash cluster key value. |
MAT_VIEW REWITE ACCESS | BY ROWID RANGE | Retrieval of rows from a materialized view based on a rowid range. |
MAT_VIEW REWITE ACCESS | SAMPLE BY ROWID RANGE | Retrieval of sampled rows from a materialized view based on a rowid range. |
MAT_VIEW REWITE ACCESS | BY USER ROWID | If the materialized view rows are located using user-supplied rowids. |
MAT_VIEW REWITE ACCESS | BY INDEX ROWID | If the materialized view is nonpartitioned and rows are located using index(es). |
MAT_VIEW REWITE ACCESS | BY GLOBAL INDEX ROWID | If the materialized view is partitioned and rows are located using only global indexes. |
MAT_VIEW REWITE ACCESS | BY LOCAL INDEX ROWID | If the materialized view is partitioned and rows are located using one or more local indexes and possibly some global indexes. Partition Boundaries: The partition boundaries might have been computed by: A previous PARTITIONstep, in which case the PARTITION_STARTand PARTITION_STOPcolumn values replicate the values present in the PARTITIONstep, and the PARTITION_IDcontains the ID of the PARTITIONstep. Possible values for PARTITION_STARTand PARTITION_STOPare NUMBER(n), KEY, INVALID. The MAT_VIEW REWRITE ACCESSor INDEXstep itself, in which case the PARTITION_IDcontains the IDof the step. Possible values for PARTITION_STARTand PARTITION_STOPare NUMBER(n), KEY, ROW REMOVE_LOCATION( MAT_VIEW REWRITE ACCESSonly), and INVALID. |
MINUS | . | Operation accepting two sets of rows and returning rows appearing in the first set but not in the second, eliminating duplicates. |
NESTED LOOPS (These are join operations.) | . | Operation accepting two sets of rows, an outer set and an inner set. Oracle compares each row of the outer set with each row of the inner set, returning rows that satisfy a condition. This join method is useful for joining small subsets of data (OLTP). The join condition is an efficient way of accessing the second table. |
NESTED LOOPS | OUTER | Nested loops operation to perform an outer join statement. |
PARTITION | . | Iterates over the next operation in the plan for each partition in the range given by the PARTITION_STARTand PARTITION_STOPcolumns. PARTITIONdescribes partition boundaries applicable to a single partitioned object (table or index) or to a set of equi-partitioned objects (a partitioned table and its local indexes). The partition boundaries are provided by the values of PARTITION_STARTand PARTITION_STOPof the PARTITION. Refer to Table 19-1 for valid values of partition start/stop. |
PARTITION | SINGLE | Access one partition. |
PARTITION | ITERATOR | Access many partitions (a subset). |
PARTITION | ALL | Access all partitions. |
PARTITION | INLIST | Similar to iterator, but based on an IN-list predicate. |
PARTITION | INVALID | Indicates that the partition set to be accessed is empty. |
PX ITERATOR | BLOCK, CHUNK | Implements the division of an object into block or chunk ranges among a set of parallel slaves |
PX COORDINATOR | . | Implements the Query Coordinator which controls, schedules, and executes the parallel plan below it using parallel query slaves. It also represents a serialization point, as the end of the part of the plan executed in parallel and always has a PX SEND QCoperation below it. |
PX PARTITION | . | Same semantics as the regular PARTITIONoperation except that it appears in a parallel plan |
PX RECEIVE | . | Shows the consumer/receiver slave node reading repartitioned data from a send/producer (QC or slave) executing on a PX SEND node. This information was formerly displayed into the DISTRIBUTIONcolumn. See Table 19-2. |
PX SEND | QC (RANDOM), HASH, RANGE | Implements the distribution method taking place between two parallel set of slaves. Shows the boundary between two slave sets and how data is repartitioned on the send/producer side (QC or side. This information was formerly displayed into the DISTRIBUTIONcolumn. See Table 19-2. |
REMOTE | . | Retrieval of data from a remote database. |
SEQUENCE | . | Operation involving accessing values of a sequence. |
SORT | AGGREGATE | Retrieval of a single row that is the result of applying a group function to a group of selected rows. |
SORT | UNIQUE | Operation sorting a set of rows to eliminate duplicates. |
SORT | GROUP BY | Operation sorting a set of rows into groups for a query with a GROUP BYclause. |
SORT | JOIN | Operation sorting a set of rows before a merge-join. |
SORT | ORDER BY | Operation sorting a set of rows for a query with an ORDER BYclause. |
TABLE ACCESS (These are access methods.) | FULL | Retrieval of all rows from a table. |
TABLE ACCESS | SAMPLE | Retrieval of sampled rows from a table. |
TABLE ACCESS | CLUSTER | Retrieval of rows from a table based on a value of an indexed cluster key. |
TABLE ACCESS | HASH | Retrieval of rows from table based on hash cluster key value. |
TABLE ACCESS | BY ROWID RANGE | Retrieval of rows from a table based on a rowid range. |
TABLE ACCESS | SAMPLE BY ROWID RANGE | Retrieval of sampled rows from a table based on a rowid range. |
TABLE ACCESS | BY USER ROWID | If the table rows are located using user-supplied rowids. |
TABLE ACCESS | BY INDEX ROWID | If the table is nonpartitioned and rows are located using index(es). |
TABLE ACCESS | BY GLOBAL INDEX ROWID | If the table is partitioned and rows are located using only global indexes. |
TABLE ACCESS | BY LOCAL INDEX ROWID | If the table is partitioned and rows are located using one or more local indexes and possibly some global indexes. Partition Boundaries: The partition boundaries might have been computed by: A previous PARTITIONstep, in which case the PARTITION_STARTand PARTITION_STOPcolumn values replicate the values present in the PARTITIONstep, and the PARTITION_IDcontains the ID of the PARTITIONstep. Possible values for PARTITION_STARTand PARTITION_STOPare NUMBER(n), KEY, INVALID. The TABLE ACCESSor INDEXstep itself, in which case the PARTITION_IDcontains the IDof the step. Possible values for PARTITION_STARTand PARTITION_STOPare NUMBER(n), KEY, ROW REMOVE_LOCATION( TABLE ACCESSonly), and INVALID. |
UNION | . | Operation accepting two sets of rows and returns the union of the sets, eliminating duplicates. |
VIEW | . | Operation performing a view's query and then returning the resulting rows to another operation. |
相关文章推荐
- Oracle 执行计划(2)-基数 cardinality【即估算一个操作返回的行数】
- Linux下使用crontab来执行定时任务计划----执行每晚12点多执行移动log日志文件操作
- 理解执行计划中的一些sort操作
- 对当前目录下(包括子目录)特定类型文件执行某种操作
- 错误的转换绑定变量类型导致执行计划错误
- Python学习第2节(基本数据类型操作和执行流程语句)
- jquery对不同id的按钮执行同一类型的操作
- 阿里巴巴数据库操作手册-20-固定执行计划-outline
- Spark SQL 物理执行计划各操作实现
- C++9.3容器定义的类型 size_type 、容器执行的操作 insert
- MySQL单表多索引上分组操作的执行计划分析
- C# Winform中执行post操作并获取返回的XML类型的数据
- 一次ORA-4030问题诊断及解决【解决思路不错,说明了对象的统计信息与优化器的优化操作(即选择执行一个SQL语句在该优化参数环境下最佳的执行计划)间的关系】
- mysql 执行计划type类型及sql优化原则介绍
- MYSQL-基础操作-索引与查询执行计划
- 关于虚拟机复制文件时:无法确定本地文件类型。您可能没有执行此操作的权限。 正在取消文件复制操作。的决解方法
- Spark SQL 物理执行计划各操作实现
- SQL Server 第四堂课,创建存储过程。存储过程是一组编译在单个执行计划中的transact-SQL语句。存储过程相当于C#函数,可以允许模块化程序设计,允许更快执行如果某操作需要大量transct-SQL代码或需要重复执行,将在创建存储过程中对其进行分析和优化。
- 也谈SQL Server 2008 处理隐式数据类型转换在执行计划中的增强 (续)
- 类型转换导致执行计划不走索引测试案例