Datos clave
- Categoría
- Desarrollo y Web
- Tipos de entrada
- textarea, select, number
- Tipo de salida
- html
- Cobertura de muestras
- 4
- API disponible
- Yes
Resumen
El Visualizador de Plan de Ejecución SQL transforma la salida de texto o JSON de los comandos EXPLAIN y EXPLAIN ANALYZE de PostgreSQL, MySQL y SQLite en un árbol interactivo y estructurado. Esta herramienta identifica cuellos de botella de rendimiento, resalta discrepancias entre las filas estimadas y reales, y ofrece sugerencias automáticas de indexación para optimizar tus bases de datos.
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
Ejemplos
1. Optimización de Seq Scan en PostgreSQL
Administrador de Bases de Datos- Contexto
- Una consulta de búsqueda de usuarios por correo electrónico tarda varios segundos en completarse en una tabla con millones de registros.
- Problema
- Identificar por qué la base de datos realiza un escaneo secuencial en lugar de usar un índice.
- Cómo usarlo
- Pega la salida JSON de EXPLAIN (ANALYZE, FORMAT JSON) de la consulta en el visualizador.
- Configuración de ejemplo
-
Dialecto configurado en 'postgresql' y la salida JSON del plan pegada en el área de texto. - Resultado
- El visualizador resalta el nodo de Seq Scan en rojo, advierte sobre la divergencia de estadísticas (95,000 filas reales frente a 1,000 estimadas) y sugiere crear un índice en la columna email.
2. Detección de Filesort en MySQL
Desarrollador Backend- Contexto
- Una consulta con ordenamiento (ORDER BY) y paginación está consumiendo demasiada memoria en el servidor MySQL.
- Problema
- Determinar si el ordenamiento se realiza en memoria o disco debido a la falta de un índice compuesto adecuado.
- Cómo usarlo
- Ejecuta EXPLAIN FORMAT=JSON seguido de la consulta en MySQL, copia el resultado JSON y pégalo en la herramienta.
- Configuración de ejemplo
-
Dialecto configurado en 'mysql' y el JSON de la salida del plan de ejecución pegado en el área de texto. - Resultado
- La herramienta muestra un nodo de ordenamiento con la advertencia de 'filesort' y sugiere añadir un índice que cubra tanto el filtro WHERE como las columnas del ORDER BY.
Probar con muestras
json, sql, textHubs relacionados
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.