Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.1 » SQL Anywhere 服务器 - SQL 的用法 » 查询和修改数据 » 查询 » 高级:查询执行计划

 

执行计划组件

以下是在执行计划中可看到的缩写。

简要文本计划 详细文本计划 其它信息
成本最佳计划 优化程序为给定查询生成访问计划并估算访问计划的开销。在此过程中,当前最佳计划可能被估计开销更低的新最佳计划所取代。最后一个最佳计划即是用于执行语句的执行计划。成本最佳计划指出优化程序发现比当前最佳计划更好的计划的次数。次数较少说明最佳计划在枚举过程早期就已确定。由于优化程序为给定语句的每个查询块至少启动一次枚举过程,因此成本最佳计划表示的是累积次数。
成本计划 与目前已找到的最佳计划相比,优化程序生成的许多计划开销都十分庞大。成本计划表示在给定语句的枚举过程期间,优化程序所考虑的部分或完整计划的数目。
** ** 全面的索引扫描。该索引扫描会读取所有行。
DELETE Delete DELETE 操作的根节点。
DistH HashDistinct HashDistinct 采用单个输入并返回所有非重复行。
DistO OrderedDistinct OrderedDistinct 读取每一行并将之与前一行进行比较。如果相同,则忽略该行;否则,将输出该行。
DP DecodePostings DecodePostings 解码文本索引中术语的位置信息。
DT DerivedTable 由于查询重写优化和各种其它原因,特别是在查询涉及一个或多个外连接时,DerivedTable 可能会出现在计划中。
EAH HashExceptAll

指示使用了集合差异 SQL 运算符 EXCEPT 的基于散列的实现。

EAM MergeExceptAll

指示使用了集合差异 SQL 运算符 EXCEPT 的基于排序的实现。

EH HashExcept

指示使用了集合差异 SQL 运算符 EXCEPT 的基于散列的实现。

EM MergeExcept

指示使用了集合差异 SQL 运算符 EXCEPT 的基于排序的实现。

Exchange Exchange

指示在处理 SELECT 语句时使用了查询内并行机制。

Filter Filter

指示应用了包括任何类型谓语、涉及子选择的比较、EXISTS 和 NOT EXISTS 子查询(以及其它形式的限定子查询)的搜索条件。

GrByH HashGroupBy

HashGroupBy 建立每组包含一行的内存中的散列表。当读取输入行时,将在工作表中查找关联组。它会更新集合函数并将组行重写到工作表中。如果没有找到组记录,则将初始化新的组记录并将其插入到工作表中。

GrByHClust HashGroupByClustered

在某些情况下,输入表的分组列中的值会聚簇,这样,相似的值便可以靠近在一起显示。ClusteredHashGroupBy 利用这种聚簇。

GrByHP ParallelHashGroupBy

HashGroupBy 的变体。

GrByHSets HashGroupBySets

HashGroupBy 的变体 HashGroupBySets 在执行 GROUPING SETS 查询时使用。

GrByO OrderedGroupBy

OrderedGroupBy 读取按分组列排序的输入。当读取每一行时,该算法会将该行与前一行进行比较。如果分组列匹配,则更新当前组;否则,将输出当前组并启动新组。

GrByOSets OrderedGroupBySets

OrderedGroupBy 的变体 OrderedGroupBySets 在执行 GROUPING SETS 查询时使用。

GrByS SingleRowGroupBy

当没有指定 GROUP BY 时,SingleRowGroupBy 用于生成单行集合。单个组行将保留在内存中,并针对每个输入行进行更新。

GrBySSets SortedGroupBySets

处理包含 GROUPING SETS 的 OLAP 查询时使用 SortedGroupBySets。

HF HashFilter

指示使用了散列过滤器(或 bloom 过滤器)。

HFP ParallelHashFilter

指示使用了散列过滤器(或 bloom 过滤器)。

HTS HashTableScan

指示使用了散列表扫描。

IAH HashIntersectAll

指示使用了集合差异 SQL 运算符 INTERSECT 的基于散列的实现。

IAM MergeIntersectAll

指示使用了集合差异 SQL 运算符 INTERSECT 的基于排序的实现。

IH HashIntersect

指示使用了集合差异 SQL 运算符 INTERSECT 的基于散列的实现。

IM MergeIntersect

指示使用了集合差异 SQL 运算符 INTERSECT 的基于排序的实现。

IN InList

当可以使用索引来满足 IN 列表谓语时,将使用 InList。

table-name<index-name>

IndexScan、ParallelIndexScan 在图形式计划中,索引扫描显示为梯形中的索引名。
INSENSITIVE Insensitive
INSERT Insert INSERT 操作的根节点。
IO IndexOnlyScan、ParallelIndexOnlyScan

指示优化程序使用了包含满足查询所需的所有数据的索引。

JH HashJoin

HashJoin 会用两个输入中的较小输入建立内存中的散列表,然后读取较大的输入并探查内存中的散列表以查找匹配项,这些匹配项会被写入工作表中。如果内存无法容纳较小的输入,HashJoin 就会将这两个输入分为较小的工作表。将以递归的方式对这些较小的工作表进行处理,直到较小的输入能够装入内存为止。

JHS HashSemijoin

HashSemijoin 在左侧和右侧之间执行半连接。

JHSP ParallelHashSemijoin

HashJoin 的变体。

JHFO Full Outer HashJoin

HashJoin 的变体。

JHA HashAntisemijoin

HashAntisemijoin 在左侧和右侧之间执行反半连接。

JHAP ParallelHashAntisemijoin

HashJoin 的变体。

JHO Left Outer HashJoin

HashJoin 的变体。

JHP ParallelHashJoin

HashJoin 的变体。

JHPO ParallelLeftOuterHashJoin

HashJoin 的变体。

JHR RecursiveHashJoin

HashJoin 的变体。

JHRO RecursiveLeftOuterHashJoin

HashJoin 的变体。

JM MergeJoin

MergeJoin 读取均已按照连接属性进行排序的两个输入。对于左侧输入中的每个行,该算法通过按排序顺序对行进行访问来读取右侧输入中的所有匹配行。

JMFO Full Outer MergeJoin

MergeJoin 的变体。

JMO Left Outer MergeJoin

MergeJoin 的变体。

JNL NestedLoopsJoin

NestedLoopsJoin 通过为左侧的每行完全读取右侧的内容来计算左右两侧的连接。

JNLA NestedLoopsAntisemijoin

NestedLoopsAntisemijoin 通过为左侧的每行扫描右侧的内容来连接其输入。

JNLFO Full Outer NestedLoopsJoin

NestedLoopsJoin 的变体。

JNLO Left Outer NestedLoopsJoin

NestedLoopsJoin 的变体。

JNLS NestedLoopsSemijoin

NestedLoopsSemijoin 通过为左侧的每行扫描右侧的内容来连接其输入。

KEYSET Keyset

表示由键集驱动的游标。

LOAD Load

装载操作的根节点。

MultiIdx MultipleIndexScan

当可以使用或必须使用多个索引以满足查询(该查询包含一组通过逻辑运算符 AND 或 OR 组合的搜索条件)时,使用 MultipleIndexScan。

OpenString OpenString

当 SELECT 语句的 FROM 子句包含 OPENSTRING 子句时,可以使用 OpenString。

Optimization Time 优化程序在给定语句的所有枚举过程期间所花费的总时间。
PC ProcCall 过程调用(表函数)。
PreFilter PreFilter

过滤器应用包括任何类型谓语、涉及子选择的比较、EXISTS 和 NOT EXISTS 子查询(以及其它形式的限定子查询)的搜索条件。

R R 反向索引扫描。该索引扫描按相反顺序从索引读取行。
RL RowLimit

RowLimit 返回其输入的前 n 行并忽略其余的行。行限制是通过 SELECT 语句的 TOP n 或 FIRST 子句来设置的。

ROWID RowIdScan 在图形式计划中,行 ID 扫描的显示为矩形中的表名。
ROWS RowConstructor

RowConstructor 是一种专用运算符,可以创建用作其它算法的输入的虚拟行。

RR RowReplicate

RowReplicate 在执行 EXCEPT ALL 和 INTERSECT ALL 等集合操作期间使用。

RT RecursiveTable 指示已将递归表用作查询中 WITH 子句的结果,其中 WITH 子句用于递归联合查询。
RU RecursiveUnion

RecursiveUnion 在执行递归联合查询期间应用。

SELECT Select SELECT 操作的根节点。
seq TableScan、ParallelTableScan 在图形式计划中,表扫描显示为矩形中的表名。
Sort Sort 索引或合并排序。
SrtN SortTopN

SortTopN 用于包含 TOP N 子句和 ORDER BY 子句的查询。

TermBreak TermBreak 全文搜索 TermBreaker 算法。
UA UnionAll

UnionAll 从其每一项输入中读取行并将这些行输出,而不管是否有重复项。该算法用于实现 UNION 和 UNION ALL 语句。

UPDATE Update UPDATE 操作的根节点。
Window Window

计算使用窗口函数的 OLAP 查询时会使用窗口。

Work Work table 表示中间结果的内部节点。
 优化程序统计字段说明
 节点统计字段说明
 计划中使用的常见统计信息
 计划中的常见估计值
 计划中与 SELECT、INSERT、UPDATE 和 DELETE 相关的项
 计划中与锁相关的项
 计划中与扫描相关的项
 计划中与索引扫描相关的项
 计划中与连接、过滤器和预过滤器相关的项
 计划中与散列过滤相关的项
 计划中与 UNION 相关的项
 计划中与 GROUP BY 相关的项
 计划中与 DISTINCT 相关的项
 计划中与 IN 列表相关的项
 计划中与 SORT 相关的项
 计划中与行限制相关的项
 另请参见