EXPLAIN_ARGUMENT 表

EXPLAIN_ARGUMENT 表表示每个运算符 (如果有) 的唯一特征。

表 1. EXPLAIN_ARGUMENT 表PK 表示该列是主键的一部分;FK 表示该列是外键的一部分。
列名 数据类型 是否可空? 钥匙 描述
EXPLAIN_REQUESTER VARCHAR(128) False FK 此 Explain 请求的发起方的授权标识。
EXPLAIN_TIME TIMESTAMP False FK Explain 请求的启动时间。
源名称 VARCHAR(128) False FK 说明动态语句时运行的程序包的名称或说明静态 SQL 时源文件的名称。
SOURCE_SCHEMA VARCHAR(128) False FK Explain 请求源的模式或限定符。
SOURCE_VERSION VARCHAR(64) False FK Explain 请求源的版本。
EXPLAIN_LEVEL CHAR(1) False FK 与此行相关的 Explain 信息级别。
STMTNO INTEGER False FK 与此 Explain 信息相关的包中的语句编号。
SECTNO INTEGER False FK 包中与此 Explain 信息相关的节编号。
OPERATOR_ID INTEGER False False 此查询中该运算符的唯一标识。
ARGUMENT_TYPE CHAR(8) False False 此运算符的自变量类型。
ARGUMENT_VALUE VARCHAR(1024) False 此运算符的自变量的值。 如果值在 LONG_ARGUMENT_VALUE 中,那么为 NULL。
LONG_ARGUMENT_
CLOB(2M) False 当文本不适合 ARGUMENT_VALUE 时,此运算符的自变量的值。 如果值在 ARGUMENT_VALUE 中,那么为 NULL。
表 2. ARGUMENT_TYPE 和 ARGUMENT_VALUE 列值
ARGUMENT_TYPE 值 可能的 ARGUMENT_VALUE 值 描述
AGGMODE 完成
部分
部分散列
散列完成
中间
最终唯一
完成唯一
部分唯一
中间唯一
最终唯一
指示操作程序聚集值的方式; 例如,聚集是完整聚集还是部分聚集。

HASHED COMPLETE 标识 按列组织的 数据分组。

APREUSE TRUE 指示存取方案复用绑定选项是否对此语句有效。
BACKJOIN TRUEFALSE
指示是否将 ZZJOIN 运算符用作 all-probe list-prefetch 计划中的回连接。
比特滤镜 整数
FALSE
散列连接位过滤器的大小。 散列连接位过滤器有时也可以由表队列使用。
BLDLEVEL 数据库构建标识。 源代码版本的内部标识字符串。 Db2®RR.MM.FF : nYYMMDDHHMM, ,例如 Db2 v11.1.1.1: n1610171423
BLKLOCK 独占
意向独占
意向共享

SHARE
更新
块级别锁定意向。
BUFFSCAN 错误
正确
缓冲扫描。
BUFFSORT TRUE 指示是否将 SORT 用作缓冲操作。
BUSTSENS
指示 BUSTIMESENSITIVE 绑定选项是否对此语句有效。
BY DPART TRUEFALSE
指示是否跨数据分区表的维度执行 ZZJN。
CONCACCR 此类型的每一行都将包含:
  • 此语句的设置级别:
    BIND
    Application BIND with 
    CONCURRENT ACCESS RESOLUTION 
    option
    准备
    Statement prepared with 
    CONCURRENT ACCESS RESOLUTION 
    attributes
  • 有效的并发访问解析:
    使用当前落实的数据
    Concurrent access resolution 
    of application bind or 
    statement prepare is 
    USE CURRENTLY COMMITTED
    等待结果
    Concurrent access resolution 
    of application bind or 
    statement prepare is 
    WAIT FOR OUTCOME
指示用于生成此语句的存取方案的并发访问解析。
CSERQY TRUEFALSE
远程查询是公共子表达式。
CSETEMP TRUEFALSE
基于公共子表达式标志的临时表。
CUR_COMM TRUE
当数据库配置参数 cur_commit 的值不是 DISABLE 时,访问当前已落实的行。 对于适用的语句 ,可使用下列其中一项来启用此访问方案:
  • 在绑定或准备时使用 USE CURRENT COMMITTED 选项的 CONCURRENT ACCESS RESOLUTION
  • 值为 ON 的数据库配置参数 cur_commit
DEGREE INTEGER 如果RETURN运算符表示从列式数据处理中返回插入、更新或删除的行,则RETURN运算符的DEGREE表示语句中所有子句的最大程度。 特定子句的平行程度由RETURN操作符下方计划操作符的DEGREE参数表示。

如果插入/更新/删除语句正在修改一个列式目标表,则插入/更新/删除操作符的 DEGREE 是指用于插入/更新/删除操作符的并行子代理的数量。

直接 TRUE 直接访存指示符。
DPESTFLG TRUEFALSE
指示 DPNUMPRT 值是否基于估算值。 可能的值为 TRUE (DPNUMPRT 表示估计访问的数据分区数) 或 FALSE (DPNUMPRT 表示实际访问的数据分区数)。
DPFXMLMV 引用
组合
指示是否在 DPF 分区之间移动 XML 列数据。
DPLSTPRT
个字符
表示访问的数据分区。 它是以逗号分隔的列表 (例如: 1,3, 5) 或已访问数据分区的连字符列表 (例如: 1-5)。 值 NONE 表示在应用指定的谓词之后不会保留任何数据分区。
DPNUMPRT INTEGER 表示实际或估计访问的数据分区数。
服务器 服务器名称 目标 (发货自) 服务器。
重复警告 TRUEFALSE
重复警告标志。
EARLYOUT LEFT
左 (除去内部重复项)
右边
GROUPBY
早期指标。 LEFT 指示外表中的每行只需要与内表中的最多一行连接。 LEFT (REMOVE INNER DUPLICATES) 指示已尝试从内部表中除去某些重复行。 RIGHT 指示内表中的每行只需要与外表中的最多一行连接。 NONE 指示无早期输出处理。 GROUPBY 指示由于按操作分组,因此允许进行早期输出处理。
Envvar 此类型的每一行都将包含:
  • 环境变量名
  • 环境变量值
影响优化器的环境变量
错误 此类型的每一行都将包含一个 SQLSTATE 和 SQLCODE 对。 要容许的错误列表。
扩展 Y
N
当值为 N时,自变量不会显示在说明表和格式化输出中。
指示系统临时表的最大行大小可能过大,无法容纳 32K 页。 某些行可能需要表示为大对象 (LOB)。
EVALUNCO TRUE 使用锁定延迟来评估未落实的数据。 这通过 DB2_EVALUNCOMMITTED 注册表变量启用。
EXECUTID 不透明的
二进制令牌
格式为
十六进制
字符串,表示
可执行标识。
指示要说明的部分的可执行标识。
FETCHMAX IGNORE
整数
FETCH 运算符上 MAXPAGES 自变量的覆盖值。
FILTER 此类型的每一行都包含以下项:
  • 过滤器类型标识 (BIT 或 RANGE)
  • 目标运算符标识
  • 位过滤器的大小 (以字节为单位); 范围过滤器为空白
前面列表中的每个项都用冒号和空格分隔。
指示在当前运算符处构建散列连接位过滤器或散列连接范围过滤器,并提供该过滤器的详细信息。 使用过滤器允许在查询执行期间尽早消除行。
散列连接位过滤器是一种节省空间的数据结构,用于测试元素是否是集合的成员。 以下是散列连接位过滤器参数值的示例:
BIT: 13: 8192
范围过滤器由定义列值的有效范围的最小值和最大值组成。 以下是散列连接范围过滤器参数值的示例:
RANGE: 13
FLTRAPPL TQ 下推 表明优化器使用的位过滤器应用方法。 值 TQ PUSHDOWN 指示已下推位过滤器操作。 当优化器不将下推与散列连接配合使用时,将完全不包含此参数。
贪婪 TRUE 指示优化器是否使用贪婪算法来规划访问。
全球块 独占
意向独占
意向无
意向共享
未获得锁定
共享
共享 意向独占
超级独占
更新
表示分区表对象的全局锁定意向信息。
组比亚 C TRUEFALSE
是否提供了 "分组依据" 列。 当此自变量是具有多个不同聚集的查询的一部分时,可以与 GRPBY 运算符或 TEMP 运算符相关联。
组比亚 N 整数 比较列数。 如果谓词不再需要比较某些列,那么此数字可能小于 SQL 语句的 GROUP BY 子句中存在的列数。 此自变量可以与 GRPBY 运算符相关联,也可以与 TEMP 运算符相关联 (当它是具有多个不同聚集的查询的一部分时)。
组比亚 R 此类型的每一行都将包含:
  • 按子句分组的列的有序值 (后跟冒号和空格)
  • 列名
按需求分组。 当此自变量是具有多个不同聚集的查询的一部分时,可以与 GRPBY 运算符或 TEMP 运算符相关联。
整数 运算符将重复的次数。
散列码 2432
用于散列连接的散列连接散列码的大小 (以位计)。 散列连接散列码有时也可以由表队列使用。
HASHTBSZ INTEGER 散列连接的散列表中预期的条目数。
IDXMSTLY TRUE 指示是否对从多维集群索引返回的块标识执行 FETCH。
IDXOVTMP TRUEFALSE

表明扫描是否会构建索引或快速整数排序结构,以用于随机存取临时表。

如果值为 TRUE,那么扫描将在临时表上构建索引,以便随机访问临时表。

如果值为 FALSE,那么扫描将构建用于随机访问临时表的快速整数排序结构。

内部列 此类型的每一行都将包含:
  • 按顺序排列的列的有序值 (后跟冒号和空格)
  • 列名
  • 顺序值
    (A)
    升序
    (D)
    降序
内部顺序列。
输入事务标识 上下文节点标识 INPUTXID 标识 XSCAN 操作程序所使用的输入上下文节点。
ISCANMAX IGNORE
整数
在 ISCAN 运算符上覆盖 MAXPAGES 自变量的值。
JN 输入 内部
OUTER
指示操作程序是提供连接的内部或外部的操作程序。
跳跃扫描 TRUEFALSE
指示索引扫描是跳跃扫描。
LCKAVOID TRUE 避免锁定: 行访问将避免锁定已落实的数据。
LISTENER TRUEFALSE
侦听器表队列指示符。
最大卡数 INTEGER 运算符的最大可能输出基数。 该值表示操作员在分区数据库环境中执行操作的所有数据库分区的总和。
MAXPAGES 全部
NONE
整数
期望预取的最大页面数。
MAXRIDS NONE
整数
要包括在每个列表预取请求中的最大行标识数。
MXPPSCAN TRUEFALSE
提供有关在跳跃扫描情况下如何计算 MAXPAGES 的其他信息。 可以将跳跃扫描概念化为由跳跃分隔的多个连续扫描。

如果值为 TRUE,那么 MAXPAGES 是期望每个连续扫描分别访问的页数。

如果值为 FALSE,那么 MAXPAGES 是期望所有连续扫描总共访问的页数。

NUMROWS INTEGER 期望排序的行数。
ONEFETCH TRUEFALSE
指示输入流生成的第一行满足 GROUP BY 条件。
OPROFERR TRUEFALSE
指示解析或应用优化概要文件时发生了一个或多个错误。 有关详细信息,请参阅说明诊断消息。
外列 此类型的每一行都将包含:
  • 按顺序排列的列的有序值 (后跟冒号和空格)
  • 列名
  • 顺序值
    (A)
    升序
    (D)
    降序
外序列。
OUTERJN LEFT
RIGHT
FULL
LEFT (ANTI)
right (ANTI)
外连接指示符。
开销 优化器使用了 OVERHEAD 值。
部 分 列名 对运算符的列进行分区。
PBLKLOCK 独占
意向独占
意向无
意向共享
重用
共享
共享 意向独占
超级独占
更新
定位扫描表锁定意向。
PGLOLOCK 独占
意向独占
意向无
意向共享
重用
共享
共享 意向独占
超级独占
更新
定位扫描全局表锁定意向。
PLANID 表示 BIGINT 值的十六进制字符串 唯一表示给定语句的查询计划配置的标识。 此值表示运算符,访问对象和相关运算符自变量的布局以及影响性能的其他计划属性。
PREFETCH 动态列表
列表
NONE
READAHEAD
SEQUENTIAL
SEQUENTIAL , READAHEAD
合格的预取类型。
PFTCHSZ INTEGER 优化器使用了 PREFETCHSIZE 值。
PROWLOCK 互斥
NONE
复用共享
短 (即时) 共享
更新
定位扫描行锁定意向。
PTABLOCK 独占
意向独占
意向无
意向共享
重用
共享
共享 意向独占
超级独占
更新
定位扫描表锁定意向。
RAND ACC TRUE 指示常规 TEMP 表允许随机访问。 ZZJN 操作程序需要随机访问。
REOPT 始终
ONCE
该语句使用参数标记,主变量和专用寄存器的绑定值进行优化。
RMTQTXT 查询文本 远程查询文本
RNG_PROD 函数名 用于扩展索引访问的范围生成函数。
排锁 互斥
NONE
复用共享
短 (即时) 共享
更新
行锁定意向。
行宽 INTEGER 要排序的行的宽度。
R后缀 查询文本 远程 SQL 后缀。
scandir FOR何承天
逆向
扫描方向。
扫描仪 INTEGER 分区内并行性,分区内并行扫描的粒度,以 SCANUNITs 表示。
服务类型 LOCAL PARALLEL 分区内并行性,索引扫描,表扫描或 按列组织的 数据扫描。
扫描单元
分区内并行性,扫描粒度单元。
SEMEVID 表示 BIGINT 值的十六进制字符串 编译语句时语义环境的标识。 SEMEVID 对应于监视元素SEM防撞 _env_id。
半连接 TRUEFALSE
HSJOIN 运算符上的此参数指示 按列组织的 处理是否应部署半连接优化技术以减小为大型散列连接内部表创建的散列表的大小。
SHARED TRUE 分区内并行性,共享 TEMP 指示符。
SHRCSE TRUE 在子节之间共享的公共子表达式上的临时表。
跳转输入 TRUE 跳过插入。 行访问将跳过未落实的插入行。 此行为通过 DB2_SKIPINSERTED 注册表变量启用,或者在当前已落实的语义生效时启用。
SKIPDKEY TRUE 跳过已删除的密钥。 行访问将跳过未落实的已删除密钥。 此行为是使用 DB2_SKIPDELETED 注册表变量启用的。
跳字 TRUE 跳过已删除的行。 行访问将跳过未落实的已删除行。 此行为是使用 DB2_SKIPDELETED 注册表变量启用的。
SKIPLOCK TRUE 并发访问解决方案 跳过锁定数据 已生效。
慢速 TRUEFALSE
慢速具体化标志。
单曲制作 TRUEFALSE
由单个代理程序生成的分区内并行性排序或临时排序。
排序键 此类型的每一行都将包含:
  • 键中列的有序值 (后跟冒号和空格)
  • 列名
  • 顺序值
    (A)
    升序
    (D)
    降序
    (R)
    随机
对键列进行排序。
SORTTYPE 全局
MERGE
分区
ROUND ROBIN
已复制
SHARED
分区内并行性,排序类型。
SRCSEVER 服务器名称 源 (收货方) 服务器。
速度 缓慢
FAST
SLOW 指示期望扫描在表上缓慢进行。 例如,如果扫描是嵌套循环连接的外部)。 FAST 指示期望扫描以更高的速度进行。 此信息用于将扫描分组在一起以高效共享缓冲池记录。
溢出 INTEGER SORT 溢出中的估计页数。
SQLCA 警告信息 说明操作期间发出的警告和原因码。
已启动 IXAND 运算符是星型连接的一部分
STMTHEAP INTEGER 语句编译开始时的语句堆大小。
STMTID 表示 BIGINT 值的十六进制字符串 唯一表示 SQL 语句的规范化格式的标识。 语句规范化遵循优化概要文件的不完全匹配规则。 有关详细信息,请参阅相关链接。
TRUEFALSE
远程源正在流式传输。
SYSTSENS
指示 SYSTIMESENSITIVE 绑定选项已生效
表锁定 独占
意向独占
意向无
意向共享
重用
共享
共享 意向独占
超级独占
更新
表锁定意向。
TBISOLVL UNCOMMITED 读
读稳定性
游标稳定性
可重复读
指示操作员用于访问特定表的隔离级别
临时大小 INTEGER 临时表页大小。
调速 TRUEFALSE
调速可提高其他扫描的性能,否则这些扫描将落后并被迫重新读取相同的页面。 TRUE (如果可以对扫描进行调速)。 FALSE (如果不能对扫描进行调速)。
TMPCMPRS
符合条件
值 YES 指示已应用压缩。 值 "合格" 指示如果表变得足够大,那么可以应用压缩。 缺少 TMPCMPRS 指示未压缩临时表。
TQDEGREE INTEGER 分区内并行性,访问表队列的子代理程序数。

如果 TQ 运算符表示 按列组织的 数据处理与 按行组织的 数据处理之间的转换,那么 TQDEGREE 自变量指示用于并行处理查询的 按列组织的 处理子代理程序数。

TQMERGE TRUEFALSE
合并 (排序) 表队列指示符。
TQNUMBER INTEGER 表队列标识号。
TQREAD 预读
步进
子查询步进
表队列读取属性。
TQSECNFM INTEGER 表队列发送端的子节号。
TQSECNTO INTEGER 表队列接收端的子节号。
TQSEND 广播
已定向
SCATTER
子查询已定向
表队列发送属性。
TQ 类型 LOCAL 分区内并行性,表队列。
TQORIGIN ASYNCHRONY
XTQ
按列组织的数据
行组织的数据
将表队列引入存取方案的原因。

按列组织的数据 指示正在使用 TQ 运算符将数据从 按列组织的 处理传输到 按行组织的 处理。

ROW-动者 DATA 指示正在使用 TQ 运算符将数据从 按行组织的 处理传输到 按列组织的 处理。

按列组织的数据按行组织的数据 值将导致 TQ 运算符在存取方案中显示为 CTQ

TRUNCTQ 输入和输出
输出
截断的表队列指示符。 INPUT 指示在表队列的输入上发生截断。 OUPUT 指示在表队列的输出上发生截断。 INPUT 和 OUTPUT 指示在表队列的输入和表队列的输出上都发生截断。
TRUNCSRT TRUE 已截断排序 (限制生成的行数)。
TUPBLKSZ INTEGER 执行散列连接所需的总排序堆组件,用于确定将存储元组的字节数。 这可以由服务用于诊断内存,临时表以及某种程度上的排序堆使用情况。
UNIQUE true
false
hashed partial
hashed complete
此运算符将消除具有一组列的重复值的行。

HASHED PARTIAL 指示执行了部分早期相异操作,以高效地除去许多 (如果不是全部) 重复项。 这会减少以后必须在查询求值中处理的数据量。

HASHED COMPLETE 指示在 按列组织 数据处理期间使用散列来消除重复项。

UNIQKEY 此类型的每一行都将包含:
  • 键中列的有序值 (后跟冒号和空格)
  • 列名
唯一键列。
UR_EXTRA TRUE

未落实的读隔离,但有额外的处理以确保正确的隔离。 此访问具有额外的表级别锁定; 与游标稳定性相同的表级别锁定。 此外,当语句正在执行时,隔离级别可能会升级到游标稳定性,例如,如果联机装入同时运行。

语句执行计划的另一部分将确保隔离级别正确,例如处于较高隔离级别的 FETCH 运算符。

用法 标量子查询 指示如何使用 NLJOIN 运算符。 SCALAR_SUBQUERY 指示正在使用 NLJOIN 运算符来应用标量子查询谓词。

散列连接是用于 按列组织的 表的唯一连接方法。 但是,优化器在 按列组织 数据处理期间使用 NLJOIN 运算符对标量子查询的应用程序进行建模。

NLJOIN 运算符的其中一个输入分支是由标量子查询计算的单个值。 运算符的另一个输入是其谓词引用标量值的数据流。

可见 TRUEFALSE
共享扫描是否对其他共享扫描可视。 可见的共享扫描可能会影响其他扫描的行为。 受影响行为的示例包括启动位置和调速。
VOLATILE TRUE 易失表 (volatile table)
换行 TRUEFALSE
是否允许共享扫描从表中的任何记录开始,并在到达最后一条记录后进行合并。 合并允许与其他正在进行的扫描共享缓冲池记录。
XFERRATE 优化器使用了 TRANSFERRATE 值。
XDFOUT DECIMAL XDFOUT 指示每个上下文节点的 XISCAN 操作程序要返回的期望文档数。
XLOGID 由 SQL 模式名称和 基于 XML 数据的索引 的名称组成的标识 XLOGID 标识优化器为 XISCAN 操作程序选择的 基于 XML 数据的索引
XPATH 内部格式的 XPATH 表达式和结果集 此参数指示 XSCAN 运算符对 XPATH 表达式的求值。
XPHYID 由 SQL 模式名称和基于 XML 数据的物理 索引 的名称组成的标识 XPHYID 标识与 XISCAN 操作程序所使用的 基于 XML 数据的索引 相关联的物理索引。