EXPLAIN_ARGUMENT 表
EXPLAIN_ARGUMENT 表表示每个运算符 (如果有) 的唯一特征。
| 列名 | 数据类型 | 是否可空? | 钥匙 | 描述 |
|---|---|---|---|---|
| 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。 |
| 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 | 此类型的每一行都将包含:
|
指示用于生成此语句的存取方案的并发访问解析。 |
| CSERQY | TRUEFALSE |
远程查询是公共子表达式。 |
| CSETEMP | TRUEFALSE |
基于公共子表达式标志的临时表。 |
| CUR_COMM | TRUE | 当数据库配置参数 cur_commit 的值不是 DISABLE 时,访问当前已落实的行。 对于适用的语句 ,可使用下列其中一项来启用此访问方案:
|
| 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 | 此类型的每一行都包含以下项:
|
指示在当前运算符处构建散列连接位过滤器或散列连接范围过滤器,并提供该过滤器的详细信息。 使用过滤器允许在查询执行期间尽早消除行。 散列连接位过滤器是一种节省空间的数据结构,用于测试元素是否是集合的成员。 以下是散列连接位过滤器参数值的示例:
范围过滤器由定义列值的有效范围的最小值和最大值组成。 以下是散列连接范围过滤器参数值的示例:
|
| 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 |
表明扫描是否会构建索引或快速整数排序结构,以用于随机存取临时表。 如果值为 如果值为 |
| 内部列 | 此类型的每一行都将包含:
|
内部顺序列。 |
| 输入事务标识 | 上下文节点标识 | INPUTXID 标识 XSCAN 操作程序所使用的输入上下文节点。 |
| ISCANMAX | IGNORE 整数 |
在 ISCAN 运算符上覆盖 MAXPAGES 自变量的值。 |
| JN 输入 | 内部 OUTER |
指示操作程序是提供连接的内部或外部的操作程序。 |
| 跳跃扫描 | TRUEFALSE |
指示索引扫描是跳跃扫描。 |
| LCKAVOID | TRUE | 避免锁定: 行访问将避免锁定已落实的数据。 |
| LISTENER | TRUEFALSE |
侦听器表队列指示符。 |
| 最大卡数 | INTEGER | 运算符的最大可能输出基数。 该值表示操作员在分区数据库环境中执行操作的所有数据库分区的总和。 |
| MAXPAGES | 全部 NONE 整数 |
期望预取的最大页面数。 |
| MAXRIDS | NONE 整数 |
要包括在每个列表预取请求中的最大行标识数。 |
| MXPPSCAN | TRUEFALSE |
提供有关在跳跃扫描情况下如何计算 MAXPAGES 的其他信息。 可以将跳跃扫描概念化为由跳跃分隔的多个连续扫描。 如果值为 如果值为 |
| NUMROWS | INTEGER | 期望排序的行数。 |
| ONEFETCH | TRUEFALSE |
指示输入流生成的第一行满足 GROUP BY 条件。 |
| OPROFERR | TRUEFALSE |
指示解析或应用优化概要文件时发生了一个或多个错误。 有关详细信息,请参阅说明诊断消息。 |
| 外列 | 此类型的每一行都将包含:
|
外序列。 |
| 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 |
由单个代理程序生成的分区内并行性排序或临时排序。 |
| 排序键 | 此类型的每一行都将包含:
|
对键列进行排序。 |
| 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 运算符在存取方案中显示为 |
| 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 数据的索引 相关联的物理索引。 |