Skip to content

EXPLAIN

EXPLAIN — 展示一个语句的执行计划。

语法结构

EXPLAIN [ ( option [, ...] ) ] statement

where option can be one of:
    ANALYZE [ boolean ]
    VERBOSE [ boolean ]
    (FORMAT=TEXT)

语法描述

此命令主要作用是显示出 MatrixOne 计划程序为提供的语句生成的执行计划。执行计划显示了如何通过普通顺序扫描、索引扫描等方式扫描语句引用的表,如果引用了多个表,将使用什么连接算法将每个输入表中所需的行聚集在一起。

显示的最关键部分是估计语句执行成本,即计划程序将估计运行语句所需时间 (以任意一种成本单位衡量,但通常是通过磁盘页获取)。实际上这里显示了两个数字:返回第一行之前的启动成本,以及返回所有行的总成本。对于大多数查询来说,总成本是最重要的,但在 EXISTS 中的子查询中,计划程序会选择最小的启动成本,而不是最小的总成本 (因为执行者在获得一行之后就会停止)。此外,如果您使用 LIMIT 从句限制返回的行数,计划程序将在端点成本之间进行适当的插值,以便估计哪个计划真正是最便宜的。

ANALYZE 子句语法选项为语句实际执行,而不仅仅是计划执行,然后将实际运行时统计信息添加到显示中,包括每个计划节点中花费的总运行时间 (以毫秒为单位) 和实际返回的行总数。这有助于了解规划者的期望是否接近实际。

参数释义

  • ANALYZE:

执行该命令并显示实际运行时和其他统计数据。该参数默认为 FALSE

  • VERBOSE:

VERBOSE 用作显示有关计划的其他信息。具体来说,包括计划树中每个节点的输出列列表、模式限定表和函数名称,始终使用范围表别名标记表达式中的变量,并且始终打印显示统计信息的每个触发器的名称。该参数默认为 FALSE

  • FORMAT:

FORMAT 用作指定输出格式,语法为 explain ( format xx ),暂只支持 TEXT 格式。非文本输出包含与文本输出格式相同的信息,且容易被程序解析。该参数默认为 TEXT

  • BOOLEAN:

BOOLEAN 指定所选选项是打开还是关闭。你可以写 TRUE 来启用该选项,或者写 FALSE 来禁用它。该参数默认为 TRUE

  • STATEMENT

MatrixOne 支持任何 SELECTINSERTUPDATEDELETE 语句执行计划。