Edición Studio /

EXPLAIN visual

Mira el plan de una consulta como un árbol con sus costes, tiempos y malas estimaciones, desde el propio editor SQL. Edición Studio.

En esta página

Lanzarlo#

En la edición Studio, pasa a Avanzado y abre el editor SQL. Junto a los botones de siempre aparecen dos más:

  • Explain pide a PostgreSQL el plan sin ejecutar la sentencia.
  • Explain analyze ejecuta la sentencia para medirla y después deshace lo que haya cambiado.

Actúan sobre la sentencia en la que está el cursor o sobre la selección. Tiene que ser una sola; si hay varias, Gresbase te pide que pongas el cursor en una o selecciones solo una.

Explain va por el mismo camino que una ejecución normal, así que usa los parámetros :nombre de la pestaña, su timeout y su modo transacción.

ANALYZE no cambia tus datos#

EXPLAIN ANALYZE ejecuta la sentencia de verdad. Gresbase la envuelve para que no quede nada:

  • Normalmente, en BEGIN … ROLLBACK.
  • En modo transacción, dentro de un savepoint al que se vuelve después, también si la sentencia falla. Tu transacción abierta sigue como estaba.
  • En una conexión de solo lectura, en una transacción de solo lectura: ahí fallan las sentencias que escriben.

El panel lo recuerda: «ANALYZE ejecuta la sentencia para medirla. Lo que haya cambiado se ha revertido: los datos siguen como estaban.»

Revertir deshace los cambios en la base, no sus efectos secundarios: una secuencia que avanzó se queda avanzada, y una función que llama fuera de la base ya lo ha hecho.

El plan#

El plan se abre en un panel lateral, Plan de la consulta (o Plan de la consulta, ejecutada con ANALYZE). Arriba: los tiempos de Ejecución y Planificación y el Coste total.

El Árbol tiene una fila por nodo:

  • El tipo de nodo, como Seq Scan, Hash Join o Update, y su objetivo (tabla, índice).
  • El coste estimado y, con ANALYZE, el tiempo de todas sus vueltas y cuántas vueltas dio.
  • Filas estimadas frente a filas reales. Cuando se separan diez veces o más, la fila lleva desviación ×N: señal de estadísticas viejas o de una condición que PostgreSQL no sabe estimar.
  • La parte del total que se va en el propio nodo, con una barra: del tiempo con ANALYZE y del coste sin él. El nodo más caro va marcado.

Haz clic en un nodo para ver todas sus propiedades en Detalle del nodo: filtros, condiciones de índice, buffers, workers y lo demás. Ajustes distintos de los de por defecto lista los ajustes del planificador que no tienen su valor por defecto.

Texto enseña el plan en el formato de texto de EXPLAIN. Copiar texto y Copiar JSON lo copian al portapapeles, por ejemplo para pegarlo en un visor de planes o en una incidencia.

Opciones según la versión#

Gresbase envía EXPLAIN (FORMAT JSON, SETTINGS) y añade ANALYZE y BUFFERS en Explain analyze. Desde PostgreSQL 13, la primera versión que admite BUFFERS sin ANALYZE, el Explain normal también lo lleva.

En los planes paralelos, los tiempos de los nodos que ejecutan los workers son los que da PostgreSQL por worker.