Descripción de la instrucción EXPLAIN

Completado

Use la instrucción EXPLAIN para mostrar el plan de ejecución de la consulta. EXPLAIN se puede usar con cualquier instrucción SELECT, INSERT, UPDATE, DELETE, VALUES, EXECUTE, DECLARE o CREATE TABLE AS.

EXPLAIN muestra el plan de ejecución de la consulta, lo que le permite comprender cómo PostgreSQL: ejecuta una instrucción, si se usan índices, cómo se combinan las tablas y el costo notional de una consulta.

La sintaxis de EXPLAIN es:

EXPLAIN [ (parameter [, ...] ) ] statement

Los parámetros opcionales son:

  • ANALIZAR
  • DETALLADO
  • COSTOS
  • BUFFERS
  • FORMATO

Por ejemplo:

EXPLAIN ANALYZE SELECT * FROM category ORDER BY cat_id;

Esta consulta simple devuelve la siguiente información:

Captura de pantalla que muestra el plan de consulta.

ANALIZAR

Esta opción ejecuta la instrucción y devuelve el plan de consulta. La salida de la instrucción se descarta, pero la instrucción se ejecuta. Puede combinar las instrucciones ROLLBACK y EXPLAIN ANALYZE para evitar que se apliquen los cambios con una consulta que realice cambios en la base de datos, como INSERT, UPDATE o DELETE. Por ejemplo:

BEGIN;

> EXPLAIN ANALYZE INSERT INTO Animal 
> (ani_id, name, weight_kg, cat_id, enc_id) 
> VALUES (28, 'Robin Robin', 0.5, 1, 2);

ROLLBACK;

DETALLADO

Muestra información adicional, entre las que se incluyen:

  • lista de columnas de salida para cada nodo del árbol del plan
  • nombres de esquema de las tablas y las funciones
  • nombres de variables de las expresiones junto con el alias de tabla
  • el nombre de cada desencadenador para el que se muestran las estadísticas.

COSTOS

Incluye el costo estimado de inicio y el costo total, además del número estimado de filas y el ancho estimado de cada fila.

BUFFERS

Los búferes solo se pueden usar con la opción ANALYZE. PostgreSQL usa una memoria caché usada menos recientemente (LRU) para almacenar datos usados con frecuencia en la memoria. Los búferes muestran la cantidad de datos procedentes de una memoria caché y la cantidad que se recupera del disco. Muestra el número de bloqueos compartidos, locales y temporales, aciertos, lecturas y escrituras. Los datos proporcionados por BUFFERS pueden ayudar a comprender las partes intensivas de E/S de una consulta.

FORMATO

Define el formato de salida. XML, JSON o YAML contienen la misma información que TEXT, pero en un formato que es más fácil de usar para los programas. TEXT es el valor predeterminado.