Saltar al contenido

Formateador de planes EXPLAIN SQL

Convierte un plan EXPLAIN o EXPLAIN ANALYZE pegado en un árbol legible e indentado con las partes lentas marcadas.

Entrada
Salida

Formateador de planes EXPLAIN SQL

Pega la salida de EXPLAIN o EXPLAIN ANALYZE y esta herramienta convierte el bloque de texto en un árbol indentado de operaciones, con el costo, cantidad de filas y tiempo de cada nodo alineados. En lugar de escanear un bloque denso de anotaciones "cost=… rows=… actual time=…", obtienes una forma que puedes leer de un vistazo — qué escaneo alimenta qué unión y dónde la consulta realmente invierte su tiempo.

Elige el dialecto que coincide con tu base de datos: EXPLAIN ANALYZE de PostgreSQL y MySQL usan el mismo árbol indentado "-> ", el EXPLAIN clásico de MySQL (sin ANALYZE) se analiza fila por fila, y EXPLAIN QUERY PLAN de SQLite tiene sus propios formatos de árbol ASCII e id/padre. Pega texto plano o cambia el formato de entrada a JSON para EXPLAIN (FORMAT JSON) de PostgreSQL y EXPLAIN FORMAT=JSON de MySQL. Mostrar cantidad de filas alterna los números de filas estimadas contra reales, el umbral de nodo caro controla qué porcentaje del costo total o tiempo recibe el indicador "caro" de un nodo, y ocultar nodos menores permite eliminar ramas de bajo costo de un plan largo para que los valores atípicos destaquen. Cambia la salida entre un árbol indentado y una tabla plana alineada.

El costo y tiempo que reporta cada nodo son acumulativos — ya incluyen todos los descendientes — así que la herramienta resta los descendientes de cada nodo antes de clasificar nada, lo que evita que el nodo de nivel superior de una consulta siempre se vea como el "caro". La línea de resumen debajo del plan suma las operaciones, cuenta cuántas fueron marcadas, y nombra la rama más lenta de raíz a hoja para que sepas exactamente qué cadena de operaciones investigar primero.

Todo se ejecuta localmente en tu navegador — un plan de consulta puede revelar nombres de tabla e índice que preferirías no pegar en un formulario web aleatorio, y nada se sube a ningún lado. Copia el árbol formateado, descárgalo como archivo .txt, o envía la salida de vuelta a la entrada para ajustar el umbral y reformatear.

Preguntas frecuentes

¿Qué formatos de EXPLAIN entiende?
Salida de árbol de EXPLAIN ANALYZE de PostgreSQL y MySQL 8, EXPLAIN tabular clásico de MySQL, EXPLAIN QUERY PLAN de SQLite (tanto su árbol ASCII como sus filas id/padre/detalle sin procesar), además de los formatos de plan JSON de PostgreSQL y MySQL.
¿Por qué el nodo de nivel superior no siempre se marca como caro?
El costo e tiempo reportados por un nodo ya incluyen todo debajo, así que la herramienta compara la cuota propia de cada nodo después de restar sus descendientes — eso es lo que señala el cuello de botella real en lugar de siempre destacar la raíz.
¿Qué sucede si el plan de SQLite no tiene datos de costo?
EXPLAIN QUERY PLAN de SQLite no reporta costo ni tiempo, así que el árbol se sigue formateando y el resumen lo dice honestamente en lugar de adivinar un destacado.
¿"Ocultar nodos menores a" elimina algo de mi plan?
No — solo omite filas de baja cuota de esta vista. La operación raíz siempre permanece visible para que el árbol mantenga su anclaje; vuelve a ejecutar con un umbral más bajo para verlo todo de nuevo.
¿Mi plan de consulta se carga a algún lado?
No. El análisis y formateo ocurren completamente en tu navegador — el plan y cualquier nombre de tabla o índice en él nunca dejan tu dispositivo.