- Categorias:
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:
Sintaxe¶
EXPLAIN_JSON( <explain_output_in_json_format> )
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 | +------+------+-----------------+-------------+------------------------------+-------+--------------------------+-----------------+--------------------+---------------+