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

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - SQL 的用法 » 查询处理 » 查询优化与执行 » 读取执行计划

 

执行计划缩写

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

简要文本计划 详细文本计划 其它信息
成本最佳计划

优化程序为给定查询生成访问计划并估算访问计划的开销。在此过程中,当前最佳计划可能被估计开销更低的新最佳计划所取代。最后一个最佳计划即是用于执行语句的执行计划。成本最佳计划指出优化程序发现比当前最佳计划更好的计划的次数。次数较少说明最佳计划在枚举过程早期就已确定。由于优化程序为给定语句的每个查询块至少启动一次枚举过程,因此成本最佳计划表示的是累积次数。请参见优化程序的工作原理

成本计划

与目前已找到的最佳计划相比,优化程序生成的许多计划开销都十分庞大。成本计划表示在给定语句的枚举过程期间,优化程序所考虑的部分或完整计划的数目。

DELETE Delete DELETE 操作的根节点。请参见DELETE 语句
DistH HashDistinct

请参见HashDistinct 算法 (DistH)

DistO OrderedDistinct

请参见OrderedDistinct 算法 (DistO)

DP DecodePostings

请参见DecodePostings (DP)

DT DerivedTable

请参见DerivedTable 算法 (DT)

EAH HashExceptAll

请参见排除算法(EAH、EAM、EH、EM)

EAM MergeExceptAll

请参见排除算法(EAH、EAM、EH、EM)

EH HashExcept

请参见排除算法(EAH、EAM、EH、EM)

EM MergeAccept

请参见排除算法(EAH、EAM、EH、EM)

Exchange Exchange

请参见交换算法(交换)

Filter Filter

请参见过滤器算法(过滤器、PreFilter)

GrByH HashGroupBy

请参见HashGroupBy 算法 (GrByH)

GrByHClust HashGroupByClustered

请参见ClusteredHashGroupBy 算法 (GrByHClust)

GrByHSets HashGroupBySets

请参见HashGroupBySets 算法 (GrByHSets)

GrByO OrderedGroupBy

请参见OrderedGroupBy 算法 (GrByO)

GrByOSets OrderedGroupBySets

请参见OrderedGroupBySets 算法 (GrByOSets)

GrByS SingleRowGroupBy

请参见SingleRowGroupBy 算法 (GrByS)

GrBySSets SortedGroupBySets

请参见SortedGroupBySets 算法 (GrBySSets)

HF HashFilter

请参见散列过滤器算法(HF、HFP)

HFP ParallelHashFilter

请参见散列过滤器算法(HF、HFP)

HTS HashTableScan

请参见HashTableScan 方法 (HTS)

IAH HashIntersectAll

请参见交叉算法(IH、IM、IAH、IAM)

IAM MergeIntersectAll

请参见交叉算法(IH、IM、IAH、IAM)

IH HashIntersect

请参见交叉算法(IH、IM、IAH、IAM)

IM MergeIntersect

请参见交叉算法(IH、IM、IAH、IAM)

IN InList

请参见InList 算法 (IN)

table-name<index-name>

IndexScan、ParallelIndexScan

在图形式计划中,索引扫描显示为梯形中的索引名。请参见IndexScan 方法

INSENSITIVE Insensitive

请参见交叉算法(IH、IM、IAH、IAM)

INSERT Insert

插入操作的根节点。请参见INSERT 语句

IO IndexOnlyScan、ParallelIndexOnlyScan

请参见IndexOnlyScan 方法 (IO)ParallelIndexScan 方法

JH HashJoin

请参见HashJoin 算法(JH、JHSP、JHFO、JHAP、JHO、JHPO)

JHS HashSemijoin

请参见HashSemijoin 算法 (JHS)

JHSP ParallelHashSemijoin

请参见HashJoin 算法(JH、JHSP、JHFO、JHAP、JHO、JHPO)

JHFO Full Outer HashJoin

请参见HashJoin 算法(JH、JHSP、JHFO、JHAP、JHO、JHPO)

JHA HashAntisemijoin

请参见HashAntisemijoin 算法 (JHA)

JHAP ParallelHashAntisemijoin

请参见HashJoin 算法(JH、JHSP、JHFO、JHAP、JHO、JHPO)

JHO Left Outer HashJoin

请参见HashJoin 算法(JH、JHSP、JHFO、JHAP、JHO、JHPO)

JHP ParallelHashJoin

请参见HashJoin 算法(JH、JHSP、JHFO、JHAP、JHO、JHPO)

JHPO ParallelLeftOuterHashJoin

请参见HashJoin 算法(JH、JHSP、JHFO、JHAP、JHO、JHPO)

JHR RecursiveHashJoin

请参见RecursiveHashJoin 算法 (JHR)

JHRO RecursiveLeftOuterHashJoin

请参见RecursiveLeftOuterHashJoin 算法 (JHRO)

JM MergeJoin

请参见MergeJoin 算法(JM、JMFO、JMO)

JMFO Full Outer MergeJoin

请参见MergeJoin 算法(JM、JMFO、JMO)

JMO Left Outer MergeJoin

请参见MergeJoin 算法(JM、JMFO、JMO)

JNL NestedLoopsJoin

请参见NestedLoopsJoin 算法(JNL、JNLFO、JNLO)

JNLA NestedLoopsAntisemijoin

请参见NestedLoopsAntisemijoin 算法 (JNLA)

JNLFO Full Outer NestedLoopsJoin

请参见NestedLoopsJoin 算法(JNL、JNLFO、JNLO)

JNLO Left Outer NestedLoopsJoin

请参见NestedLoopsJoin 算法(JNL、JNLFO、JNLO)

JNLS NestedLoopsSemijoin

请参见NestedLoopsSemijoin 算法 (JNLS)

KEYSET Keyset

表示由键集驱动的游标。请参见SQL Anywhere 游标

LOAD Load

装载操作的根节点。请参见LOAD TABLE 语句

MultiIdx MultipleIndexScan

请参见MultipleIndexScan 方法 (MultIdx)

OpenString OpenString

请参见OpenString 算法 (OpenString)

优化时间

优化程序在给定语句的所有枚举过程期间所花费的总时间。

PC ProcCall

过程调用(表函数)。请参见ProcCall 算法 (PC)

PreFilter PreFilter

请参见过滤器算法(过滤器、PreFilter)

RL RowLimit

请参见RowLimit 算法 (RL)

ROWID RowIdScan

在图形式计划中,行 ID 扫描的显示为矩形中的表名。请参见RowIdScan 方法 (ROWID)

ROWS RowConstructor

请参见RowConstructor 算法 (ROWS)

RR RowReplicate

请参见RowReplicate 算法 (RR)

RT RecursiveTable

请参见RecursiveTable 算法 (RT)

RU RecursiveUnion

请参见RecursiveUnion 算法 (RU)

SELECT Select

SELECT 操作的根节点。请参见SELECT 语句

seq TableScan、ParallelTableScan

在图形式计划中,表扫描显示为矩形中的表名。请参见TableScan 方法 (seq)ParallelTableScan 方法

Sort Sort

索引或合并排序。请参见排序算法(排序)

SrtN SortTopN

请参见SortTopN 算法 (SrtN)

TermBreak TermBreak

全文搜索 termbreaker 算法。请参见变更文本索引

UA UnionAll

请参见UnionAll 算法 (UA)

UPDATE Update

UPDATE 操作的根节点。请参见UPDATE 语句

Window Window

请参见窗口算法 (Window)

Work Work table

表示中间结果的内部节点。

计划中使用的常见统计信息

下面的统计信息是实际的测量值。

统计 解释
Invocations 从子树中请求行的次数。
RowsReturned 为当前节点返回的行数。
RunTime 执行子树所需的时间(包括执行子项所需的时间)。
CacheHits 成功读取高速缓存的次数。
CacheRead 已经在高速缓存中查找的数据库页数。
CacheReadTable 已经从高速缓存中读取表页数。
CacheReadIndLeaf 已经从高速缓存中读取的索引叶页数。
CacheReadIndInt 已经从高速缓存中读取的索引内部节点页数。
DiskRead 已经从磁盘中读取的页数。
DiskReadTable 已经从磁盘中读取的表页数。
DiskReadIndLeaf 已经从磁盘中读取的索引叶页数。
DiskReadIndInt 已经从磁盘中读取的索引内部节点页数。
DiskWrite 已经写入磁盘的页数(工作表页数或修改表页数)。
IndAdd 已经添加到索引中的条目数。
IndLookup 已经在索引中查找的条目数。
FullCompare 已经在索引中的散列值之上执行的比较次数。
计划中的常见估计值
统计信息 解释
EstRowCount 节点在每次被调用时将返回的估计行数。
AvgRowCount 每次调用时返回的平均行数。这不是估计值,而是按照 RowsReturned/Invocations 进行计算。如果该值与 EstRowCount 之间的差值很大,则说明选择性估计值可能会不正确。
EstRunTime 执行所需的估计时间(EstDiskReadTime、EstDiskWriteTime 和 EstCpuTime 的总和)。
AvgRunTime 执行所需的平均时间(测量值)。
EstDiskReads 从磁盘中读取的估计次数。
AvgDiskReads 从磁盘中读取的平均次数(测量值)。
EstDiskWrites 写入磁盘的估计次数。
AvgDiskWrites 写入磁盘的平均次数(测量值)。
EstDiskReadTime 从磁盘中读取行所需的估计时间。
EstDiskWriteTime 将行写入磁盘所需的估计时间。
EstCpuTime 执行所需的估计处理器时间。
计划中与 SELECT、INSERT、UPDATE 和 DELETE 相关的项
解释
优化目标 确定优化查询处理的意图:是迅速返回第一行,还是为最大程度地降低返回整个结果集的开销。请参见optimization_goal 选项 [数据库]
优化负载 确定优化查询处理的目标是针对更新和读取混合进行的负载还是针对主要基于读取的负载。请参见optimization_workload 选项 [数据库]
ANSI 更新约束 控制允许的更新范围(选项包括 Off、Cursors 和 Strict)。请参见ansi_update_constraints 选项 [兼容性]
优化级别 保留。
选择列表 查询所选择的表达式的列表。
实例化视图

优化程序所考虑的实例化视图列表。列表中的每个条目均为以下格式的元组:view-name [ view-matching-outcome ] [ table-list ],其中 view-matching-outcome 显示实例化视图的用法;如果值为 COSTED,则说明视图已在枚举时使用。table-list 是可能已被此视图替代的查询表的列表。

view-matching-outcome 的值包括:

  • 基本表不匹配
  • 权限不匹配
  • 谓语不匹配
  • 选择列表不匹配
  • 已用开销
  • 失效不匹配
  • 快照失效不匹配
  • 无法由优化程序使用
  • 无法由优化程序在内部使用
  • 无法建立定义
  • 无法访问
  • 已禁用
  • 选项不匹配
  • 已达到视图匹配阈值
  • 使用的视图

有关阻止优化程序使用实例化视图的限制和条件的详细信息,请参见使用实例化视图提高性能实例化视图的限制

计划中与锁相关的项
解释
被锁定的表 所有被锁定的表及其关联的隔离级别的列表。
计划中与扫描相关的项
解释
表名 表的实际名称。
相关名 表的别名。
估计行数 表中的估计行数。
估计页数 表中的估计页数。
估计行大小 表的估计行大小。
页位置图 在使用页位置图来读取多页时为 [是]。
计划中与索引扫描相关的项
解释
选择性 匹配域范围的估计行数。
索引名 索引的名称。
键类型 可以是 PRIMARY KEY(主键)、FOREIGN KEY(外键)、CONSTRAINT(唯一约束)或 UNIQUE(唯一索引)之一。如果索引是非唯一的辅助索引,则不会显示键类型。
深度 索引的高度。请参见表大小和页面大小
估计叶页数 估计的叶页数。
顺序转换 用于指示索引聚簇方式的每个物理索引的统计信息。
随机转换 用于指示索引聚簇方式的每个物理索引的统计信息。
键值 索引中独特条目的数量。
基数 索引的基数(如果它不同于估计行数)。这仅适用于 SQL Anywhere 数据库版本 6.0.0 及更早版本。
方向 FORWARD(向前)或 BACKWARD(向后)。
域范围 域范围显示为列表 (col_name=value) 或 col_name IN [low, high]。
主键表 外键索引扫描的主键表名称。
主键表预计行数 外键索引扫描的主键表中的行数。
主键列 外键索引扫描的主键列名称。
计划中与连接、过滤器和预过滤器相关的项
解释
谓语 在此节点中求出的搜索条件以及选择性估计值和测量值。请参见在图形式计划中查看选择性
计划中与散列过滤相关的项
解释
生成值 输入中的不重复值的估计数。
探测值 查看谓语时输入中的不重复值的估计数。
选择生成散列映射的位数。
存储散列映射所需的页数。
计划中与联合相关的项
解释
联合列表 UNION 语句中涉及的列。
计划中与 GROUP BY 相关的项
解释
集合 所有集合函数。
GROUP BY 列表 GROUP BY 子句中的所有列。
计划中与 DISTINCT 相关的项
解释
DISTINCT 列表 DISTINCT 子句中的所有列。
计划中与 IN 列表相关的项
解释
IN 列表 指定集合中的所有表达式。
表达式 SQL 要与该列表进行比较的表达式。
计划中与 SORT 相关的项
解释
Order-by 列出要作为排序依据的所有表达式。
计划中与行限制相关的项
解释
行限制计数 按照 FIRST 或 TOP n 的指定所返回的最大行数。