Visualizador de EXPLAIN de PostgreSQL

Convierte el JSON de EXPLAIN ANALYZE en un árbol de plan legible con tiempos, estimaciones y búferes

Entrada

Pega la salida de EXPLAIN (FORMAT JSON). También funciona la salida de psql con el encabezado QUERY PLAN y marcas +.

Hasta 5 MB, se analiza en tu navegador y nunca se guarda.

Resumen

Pega un plan EXPLAIN de PostgreSQL

Ejecuta el comando de abajo, pega el resultado JSON a la izquierda o carga un ejemplo.

Comando recomendado

EXPLAIN (
  ANALYZE,
  BUFFERS,
  SETTINGS,
  WAL,
  VERBOSE,
  FORMAT JSON
)
SELECT ...;

ANALYZE ejecuta la sentencia. Envuelve INSERT, UPDATE o DELETE entre BEGIN y ROLLBACK.

Plan de ejecución

El árbol del plan aparece aquí cuando pegas un plan válido.

Esperando un plan EXPLAIN.

Qué muestra

PostgreSQL EXPLAIN Visualizer convierte la salida de EXPLAIN (FORMAT JSON) en un árbol de plan plegable, una tabla de nodos ordenable y el JSON original con formato. El resumen muestra el tiempo de ejecución y de planificación, el número de nodos, el nodo más lento, el mayor error de estimación de filas y los bloques leídos fuera de shared buffers. Selecciona cualquier nodo para ver todos los campos que informó PostgreSQL.

Cómo obtener un plan

Ejecuta EXPLAIN (ANALYZE, BUFFERS, SETTINGS, WAL, VERBOSE, FORMAT JSON) seguido de tu consulta y pega el resultado. La salida de psql con el encabezado QUERY PLAN, las marcas de continuación + y el pie con el número de filas se limpia automáticamente. ANALYZE ejecuta la sentencia, así que envuelve INSERT, UPDATE y DELETE entre BEGIN y ROLLBACK. Los planes sin ANALYZE siguen mostrando costos y estimaciones, pero se omiten los hallazgos basados en tiempo.

Cómo se calculan las métricas

El tiempo total es el tiempo real por bucle multiplicado por los bucles; bajo un nodo Gather se divide entre el número de procesos para no contar varias veces el trabajo paralelo. El tiempo propio resta el tiempo total de los hijos y nunca baja de cero, por lo que es aproximado en planes paralelos, CTE, InitPlan y SubPlan. El factor de estimación compara filas reales y estimadas por bucle. Los contadores de búfer de EXPLAIN incluyen a los hijos, así que los valores propios los restan. Se asume el tamaño de bloque predeterminado de 8 kB.

Hallazgos y sus límites

Los hallazgos son observaciones con cifras del plan: grandes errores de estimación de filas, Nested Loop con muchas ejecuciones internas, escaneos secuenciales que descartan la mayoría de filas, ordenaciones y hashes que se vuelcan a disco, archivos temporales, lecturas fuera de shared buffers y nodos que dominan el tiempo de ejecución. Las sugerencias son prudentes y nunca nombran un índice concreto, porque el plan por sí solo no muestra la frecuencia de la consulta, la carga de escritura ni la distribución de los datos.

Privacidad

Los planes pueden revelar nombres de tablas y esquemas, predicados y valores literales. El plan se analiza en tu navegador, los grandes en un Web Worker, y nunca se sube, registra ni guarda. Solo se recuerda la vista elegida (Árbol, Tabla o Sin procesar).

CodingTool ya está oficialmente disponible en

Launched on StartupBaseCodingTool.dev - Free, Fast & Easy Developer Tools in One Place | Product HuntCodingTool - Featured on Startup FameFazier badgeListed on Turbo0Featured on Twelve ToolsFeatured on Findly.toolsLaunchpadly Startup DirectoryCodingTool.dev — Featured on Smol Launch