# Visualizador de Plan de Ejecución SQL

Pega la salida de EXPLAIN / EXPLAIN ANALYZE (PostgreSQL/MySQL/SQLite) para renderizar un árbol de costos, marcar divergencias entre filas estimadas y reales, y sugerir índices

> Página canónica: https://elysiatools.com/es/tools/sql-explain-plan-visualizer

- **Categoría:** Development

- **Palabras clave:** explain, sql, plan, índice, base de datos

## Descripción general

Esta herramienta analiza la salida real de EXPLAIN — no el texto estático de la consulta — y renderiza el plan de ejecución como un árbol indentado, coloreado por severidad.

Entradas soportadas (auto-detectadas o seleccionables):
- PostgreSQL: JSON de `EXPLAIN (FORMAT JSON, ANALYZE)`, o la salida TEXT indentada por defecto.
- MySQL: salida de `EXPLAIN FORMAT=JSON`, o el EXPLAIN tabular clásico (id|select_type|table|type|key|rows|Extra).
- SQLite: texto de `EXPLAIN QUERY PLAN` (SCAN/SEARCH ... USING INDEX ...).

Cada nodo muestra: tipo de nodo, relación, índice usado, coste/tiempo estimado, filas estimadas y, con EXPLAIN ANALYZE, filas y tiempos reales. Las divergencias de ≥10× entre filas estimadas y reales se marcan como puntos calientes de estadísticas.

Los diagnósticos cubren: sequential/full table scans en tablas grandes, divergencia de estadísticas (ANALYZE obsoleto), filesorts, tablas temporales, nested loops costosos, predicados no sargables (funciones sobre columnas indexadas), SELECT *, y ORDER BY sin LIMIT — cada uno con una sugerencia concreta de índice o reescritura (p. ej. "añade un índice en users(email)").

Consejo: para la salida más rica, ejecuta `EXPLAIN (ANALYZE, BUFFERS, FORMAT JSON)` en PostgreSQL o `EXPLAIN ANALYZE` en MySQL para comparar estimaciones con la realidad.

## Entradas

- **Salida de EXPLAIN** (textarea): Paste EXPLAIN JSON or TEXT here. e.g. PostgreSQL: \[ { "Plan": { "Node Type": "Seq Scan", "Relation Name": "users", "Actual Rows": 95000, "Plan Rows": 1000 } } \] Or indented text: Seq Scan on users (cost=0.00..1541.00 rows=1000 width=4)
- **Dialecto** (select)
- **Consulta SQL (opcional)** (textarea): SELECT * FROM users WHERE lower(email) = 'a@b.com' ORDER BY created_at
- **Límite de profundidad** (number)

## Cuándo usarlo

- Cuando una consulta SQL presenta lentitud en producción y necesitas identificar qué operaciones específicas consumen más tiempo o recursos.
- Al comparar las estimaciones del planificador de la base de datos con los tiempos de ejecución reales para detectar estadísticas desactualizadas.
- Para validar si una consulta está utilizando correctamente los índices existentes o si requiere la creación de nuevos índices.

## Cómo funciona

- Pega el resultado en formato de texto o JSON de tu comando EXPLAIN o EXPLAIN ANALYZE en el campo de entrada.
- Selecciona el dialecto correspondiente (PostgreSQL, MySQL o SQLite) o permite que la herramienta lo detecte de forma automática.
- El analizador procesa la jerarquía del plan y genera un árbol visual interactivo coloreado según la severidad del costo.
- Revisa las alertas de divergencia de filas y las recomendaciones de índices sugeridas para optimizar la consulta.

## Casos de uso

- Optimización de consultas lentas mediante la identificación de escaneos de tabla completa (Seq Scan / Full Table Scan).
- Diagnóstico de problemas de rendimiento causados por estadísticas obsoletas del planificador de la base de datos.
- Diseño y validación de estrategias de indexación basadas en los nodos de unión y filtrado más costosos.

## Preguntas frecuentes

### ¿Qué motores de bases de datos son compatibles?

Es compatible con PostgreSQL (JSON y texto), MySQL (JSON y formato tabular clásico) y SQLite (EXPLAIN QUERY PLAN).

### ¿Cómo detecta la herramienta las estadísticas desactualizadas?

Compara las filas estimadas por el planificador con las filas reales procesadas; si hay una divergencia de 10 veces o más, lo marca como un punto caliente.

### ¿Es obligatorio introducir la consulta SQL original?

No, es opcional. La herramienta analiza directamente la salida estructurada del comando EXPLAIN para generar el árbol y los diagnósticos.

### ¿Qué tipo de problemas de rendimiento puede diagnosticar?

Detecta escaneos secuenciales en tablas grandes, filesorts, tablas temporales, bucles anidados costosos y predicados no sargables.

### ¿Cómo obtengo la salida más detallada para el análisis?

Ejecuta EXPLAIN (ANALYZE, BUFFERS, FORMAT JSON) en PostgreSQL o EXPLAIN ANALYZE en MySQL para incluir datos reales de ejecución.

## Herramientas relacionadas

- [Visor de partidas guardadas](https://elysiatools.com/es/tools/game-save-viewer): Suelta cualquier archivo de partida — NBT de Minecraft, GVAS de Unreal Engine, contenedores de Palworld, saves de texto JSON/XML/INI/Lua, perfiles SQLite — y obtén el formato detectado, versiones del motor, campos de progreso clave y un árbol estructural acotado.
- [Planificador de migracion CSV a base de datos](https://elysiatools.com/es/tools/csv-to-database-migration-planner): Infiere un schema relacional desde CSV y genera planes CREATE TABLE y ALTER para PostgreSQL, MySQL, SQLite o SQL Server
- [Analizador de logs estructurados](https://elysiatools.com/es/tools/structured-log-analyzer): Detecta formatos comunes de logs, extrae campos clave e infiere tipos para exportar en JSON, CSV o SQL.
- [Auditor de dependencias de package.json](https://elysiatools.com/es/tools/package-json-dependency-auditor): Audita un package.json en busca de higiene de dependencias y calidad de rangos de versión, y opcionalmente inspecciona el árbol transitivo desde package-lock.json o yarn.lock. Señala duplicados, comodines o pre-release, claves sin ordenar, metadatos ausentes y dependencias runtime/dev mal clasificadas.
- [Analizador de pronostico y estacionalidad](https://elysiatools.com/es/tools/time-series-forecast-seasonality-analyzer): Pronostica periodos futuros desde series temporales CSV o JSON y muestra tendencia, componente estacional y residual
- [GraphQL Playground](https://elysiatools.com/es/tools/graphql-playground): Cliente GraphQL en el navegador: escribe consultas y variables, envíalas a cualquier endpoint GraphQL e inspecciona resultados JSON formateados o arrays de errores — ideal para iterar sobre esquemas durante el desarrollo
- [Detector de conflictos de prefijos y abreviaturas en mock data](https://elysiatools.com/es/tools/mock-data-naming-conflict-detector): Detecta nombres de campo visualmente confusos y colisiones de prefijo en CSV, JSON o schemas
- [Constructor de canalización de texto](https://elysiatools.com/es/tools/text-pipeline-builder): Ejecuta una receta portátil de limpieza de texto y muestra cada diff, tiempo y cambio de caracteres.

## Ejemplos

- [Ejemplos de Scripts SQL](https://elysiatools.com/es/samples/sql-samples): Ejemplos de consultas SQL y scripts de base de datos para varios escenarios y casos de uso
- [Ejemplos de Inyección SQL](https://elysiatools.com/es/samples/sql-injections): Colección educativa de payloads de inyección SQL para pruebas de seguridad, evaluación de vulnerabilidades y prácticas de codificación defensiva
- [Muestras SQL](https://elysiatools.com/es/samples/sql-viewer-samples): Archivos de muestra para el visor SQL en el navegador
- [Ejemplos Avanzados de PostgreSQL](https://elysiatools.com/es/samples/postgresql-advanced): Ejemplos avanzados de base de datos PostgreSQL incluyendo estrategias de optimización, consultas complejas, indexación y ajuste de rendimiento

## Contenido relacionado

- [Revision de consultas SQL para rendimiento e integridad](https://elysiatools.com/es/hubs/sql-query-review-performance-and-integrity): Construye, formatea y revisa SQL con logica de joins, evidencia de rendimiento, planes de ejecucion, inyeccion, claves foraneas y cambios de esquema.
