Llegeix en anglès

Comparteix a través de


EXPLAIN

Se aplica a:casilla marcada como Sí Databricks SQL casilla marcada como Sí Databricks Runtime

Proporciona los planes lógicos o físicos de una instrucción de entrada. De manera predeterminada, esta cláusula proporciona información solo sobre un plan físico.

Sintaxis

EXPLAIN [ EXTENDED | CODEGEN | COST | FORMATTED ] statement

Parámetros

  • EXTENDED

    Genera un plan lógico redistribuido, un plan lógico analizado, un plan lógico optimizado y un plan físico. El plan lógico redistribuido es un plan sin resolver extraído de la consulta. El plan lógico analizado se transforma, lo que convierte unresolvedAttribute y unresolvedRelation en objetos con tipo. El plan lógico optimizado se transforma a través de un conjunto de reglas de optimización, lo que da lugar al plan físico.

  • CODEGEN

    Genera código para la instrucción, si la hay, y un plan físico.

  • COST

    Si hay estadísticas de nodo de plan disponibles, genera un plan lógico y las estadísticas.

  • FORMATTED

    Genera dos secciones: un esquema de plan físico y detalles de nodo.

  • instrucción

    Instrucción SQL que se va a explicar.

Ejemplos

-- Default Output
> EXPLAIN select k, sum(v) from values (1, 2), (1, 3) t(k, v) group by k;
+----------------------------------------------------+
|                                                plan|
+----------------------------------------------------+
| == Physical Plan ==
 *(2) HashAggregate(keys=[k#33], functions=[sum(cast(v#34 as bigint))])
 +- Exchange hashpartitioning(k#33, 200), true, [id=#59]
    +- *(1) HashAggregate(keys=[k#33], functions=[partial_sum(cast(v#34 as bigint))])
       +- *(1) LocalTableScan [k#33, v#34]
|
+----------------------------------------------------

-- Using Extended
> EXPLAIN EXTENDED select k, sum(v) from values (1, 2), (1, 3) t(k, v) group by k;
+----------------------------------------------------+
|                                                plan|
+----------------------------------------------------+
| == Parsed Logical Plan ==
 'Aggregate ['k], ['k, unresolvedalias('sum('v), None)]
 +- 'SubqueryAlias `t`
    +- 'UnresolvedInlineTable [k, v], [List(1, 2), List(1, 3)]

 == Analyzed Logical Plan ==
 k: int, sum(v): bigint
 Aggregate [k#47], [k#47, sum(cast(v#48 as bigint)) AS sum(v)#50L]
 +- SubqueryAlias `t`
    +- LocalRelation [k#47, v#48]

 == Optimized Logical Plan ==
 Aggregate [k#47], [k#47, sum(cast(v#48 as bigint)) AS sum(v)#50L]
 +- LocalRelation [k#47, v#48]

 == Physical Plan ==
 *(2) HashAggregate(keys=[k#47], functions=[sum(cast(v#48 as bigint))], output=[k#47, sum(v)#50L])
+- Exchange hashpartitioning(k#47, 200), true, [id=#79]
   +- *(1) HashAggregate(keys=[k#47], functions=[partial_sum(cast(v#48 as bigint))], output=[k#47, sum#52L])
    +- *(1) LocalTableScan [k#47, v#48]
|
+----------------------------------------------------+

-- Using Formatted
> EXPLAIN FORMATTED select k, sum(v) from values (1, 2), (1, 3) t(k, v) group by k;
+----------------------------------------------------+
|                                                plan|
+----------------------------------------------------+
| == Physical Plan ==
 * HashAggregate (4)
 +- Exchange (3)
    +- * HashAggregate (2)
       +- * LocalTableScan (1)

 (1) LocalTableScan [codegen id : 1]
 Output: [k#19, v#20]

 (2) HashAggregate [codegen id : 1]
 Input: [k#19, v#20]

 (3) Exchange
 Input: [k#19, sum#24L]

 (4) HashAggregate [codegen id : 2]
 Input: [k#19, sum#24L]
|
+----------------------------------------------------+

Recursos addicionals

Documentació

Formació

Mòdul

Descripción del procesamiento de consultas de PostgreSQL - Training

El servidor de Azure Database for PostgreSQL recibe consultas SQL y devuelve los resultados pertinentes. Cada consulta SQL pasa por varias fases para devolver los resultados correctos lo antes posible. En este módulo, obtendrá información sobre las distintas fases de procesamiento de una consulta y la instrucción EXPLAIN.