Categorias:

Funções do sistema

EXPLAIN_JSON

Esta função converte um plano EXPLAIN do JSON para uma tabela. A saída é a mesma que a saída do comando EXPLAIN USING TABULAR <instrução>.

Consulte também:

SYSTEM$EXPLAIN_PLAN_JSON , SYSTEM$EXPLAIN_JSON_TO_TEXT

Sintaxe

EXPLAIN_JSON( <explain_output_in_json_format> )
Copy

Argumentos

explain_output_in_json_format

Uma cadeia de caracteres, ou uma expressão que avalia como uma cadeia de caracteres, contendo EXPLAIN saída como uma cadeia de caracteres compatível com JSON. Tipicamente, esta entrada é a saída da função SYSTEM$EXPLAIN_PLAN_JSON. Se uma cadeia de caracteres literal for usada, ela deve ser delimitada por caracteres de aspas simples '.

Retornos

A função retorna uma tabela contendo a saída EXPLAIN como um conjunto ordenado de linhas.

A saída desta função é equivalente à saída de EXPLAIN USING TABULAR <instrução_sql>.

Notas de uso

  • A entrada deve ser uma expressão constante. Você não pode chamar esta função em uma coluna, por exemplo.

  • Se uma cadeia de caracteres literal for passada como entrada, o delimitador ao redor da cadeia de caracteres pode ser o símbolo de aspas simples ' ou um sinal de dólar duplo $$. Se a cadeia de caracteres literal contiver aspas simples (e não contiver sinais de cifrão duplo), então a delimitação da cadeia de caracteres com sinais de cifrão duplo evitará a necessidade de escapar dos caracteres de aspas simples embutidos dentro da cadeia de caracteres.

  • A tabela de saída pode ser processada usando a função RESULT_SCAN.

  • Esta função converte informações EXPLAIN de JSON em formato tabular. Muitas vezes, o valor JSON é produzido direta ou indiretamente a partir da função SYSTEM$EXPLAIN_PLAN_JSON. Por exemplo, a saída de SYSTEM$EXPLAIN_PLAN_JSON poderia ser armazenada em uma tabela, e depois exibida mais tarde usando esta função EXPLAIN_JSON.

  • Como a saída é tabular, esta função é classificada como uma função de tabela.

Exemplos

O exemplo a seguir mostra como utilizar esta função:

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