- 类别:
EXPLAIN_JSON¶
此函数将 EXPLAIN 计划从 JSON 转换为表。输出与命令 EXPLAIN USING TABULAR <statement>
的输出相同。
语法¶
EXPLAIN_JSON( <explain_output_in_json_format> )
实参¶
explain_output_in_json_format
字符串或计算结果为字符串的表达式,包含 JSON 兼容字符串形式的 EXPLAIN 输出。通常,此输入是函数 SYSTEM$EXPLAIN_PLAN_JSON 的输出。如果使用字面量字符串,则应该放在单引号字符
'
内。
返回¶
该函数返回一个包含 EXPLAIN 输出的表,作为一组有序的行。
此函数的输出等效于 EXPLAIN USING TABULAR <sql_statement>
的输出。
使用说明¶
输入必须是常量表达式。例如,不能对列调用此函数。
如果字符串字面量作为输入传递,字符串周围的分隔符可以是单引号
'
或双美元符号$$
。如果字符串字面量包含单引号(并且不包含双美元符号),则通过使用双美元符号分隔字符串,便无需将字符串中嵌入的单引号字符进行转义。可以使用 RESULT_SCAN 函数处理输出表。
此函数将 EXPLAIN 信息从 JSON 转换成表格格式。通常,JSON 值直接或间接由 SYSTEM$EXPLAIN_PLAN_JSON 函数生成。例如,SYSTEM$EXPLAIN_PLAN_JSON 的输出可以存储在一个表中,然后使用这个 EXPLAIN_JSON 函数显示出来。
因为输出是表格形式的,所以此函数被归类为 表函数。
示例¶
下面的示例说明如何使用此函数:
SELECT * FROM TABLE( EXPLAIN_JSON( SYSTEM$EXPLAIN_PLAN_JSON( 'SELECT Z1.ID, Z2.ID FROM Z1, Z2 WHERE Z2.ID = Z1.ID') ) ); +------+------+-----------------+-------------+------------------------------+-------+--------------------------+-----------------+--------------------+---------------+ | step | id | parentOperators | operation | objects | alias | expressions | partitionsTotal | partitionsAssigned | bytesAssigned | |------+------+-----------------+-------------+------------------------------+-------+--------------------------+-----------------+--------------------+---------------| | NULL | NULL | NULL | GlobalStats | NULL | NULL | NULL | 2 | 2 | 1024 | | 1 | 0 | NULL | Result | NULL | NULL | Z1.ID, Z2.ID | NULL | NULL | NULL | | 1 | 1 | [0] | InnerJoin | NULL | NULL | joinKey: (Z2.ID = Z1.ID) | NULL | NULL | NULL | | 1 | 2 | [1] | TableScan | TESTDB.TEMPORARY_DOC_TEST.Z2 | NULL | ID | 1 | 1 | 512 | | 1 | 3 | [1] | JoinFilter | NULL | NULL | joinKey: (Z2.ID = Z1.ID) | NULL | NULL | NULL | | 1 | 4 | [3] | TableScan | TESTDB.TEMPORARY_DOC_TEST.Z1 | NULL | ID | 1 | 1 | 512 | +------+------+-----------------+-------------+------------------------------+-------+--------------------------+-----------------+--------------------+---------------+