类别:

系统函数

EXPLAIN_JSON

此函数将 EXPLAIN 计划从 JSON 转换为表。输出与命令 EXPLAIN USING TABULAR <statement> 的输出相同。

另请参阅:

SYSTEM$EXPLAIN_PLAN_JSONSYSTEM$EXPLAIN_JSON_TO_TEXT

语法

EXPLAIN_JSON( <explain_output_in_json_format> )
Copy

实参

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 |
+------+------+-----------------+-------------+------------------------------+-------+--------------------------+-----------------+--------------------+---------------+
Copy
语言: 中文