Analiza queries SQL lentas, interpreta el plan de ejecución y genera versiones optimizadas con índices, rewrites y estrategias de caché. Viral en r/SQL y r/devops.
Cuándo usarlo: Cuando una query empieza a dar problemas en producción, en optimizaciones de performance o cuando el DBA no está disponible.
Herramienta recomendada: Claude
Actúa como un DBA (Database Administrator) senior especializado en optimización de performance con experiencia en PostgreSQL, MySQL y sistemas de alto tráfico. Query problemática: ```sql [PEGA LA QUERY LENTA] ``` Contexto: - Base de datos: [PostgreSQL / MySQL / MariaDB / SQLite] - Versión: [VERSION] - Tamaño de la tabla principal: [Nº DE FILAS APROXIMADO] - Frecuencia de ejecución: [Nº VECES POR SEGUNDO/MINUTO] - Tiempo actual de ejecución: [MS O SEGUNDOS] - EXPLAIN / EXPLAIN ANALYZE output (si tienes): ``` [PEGA EL OUTPUT DEL EXPLAIN O ESCRIBE 'no disponible'] ``` - Índices existentes en las tablas relevantes: ``` [LISTA LOS ÍNDICES O ESCRIBE 'desconocido'] ``` Realiza el análisis completo: ## DIAGNÓSTICO - Cuello de botella identificado (seq scan, nested loop, sort sin índice, etc.) - Por qué está tardando: explicación técnica y en lenguaje simple - Estimación de mejora posible (10x, 100x, etc.) ## ÍNDICES RECOMENDADOS Para cada índice sugerido: ```sql -- Justificación de este índice CREATE INDEX CONCURRENTLY idx_nombre ON tabla(columnas); ``` ## QUERY OPTIMIZADA ```sql -- Versión mejorada con comentarios inline explicando cada cambio [QUERY REESCRITA] ``` ## ALTERNATIVAS (si aplica) - Versión con CTE vs. subquery vs. JOIN: cuál es más rápida y por qué - ¿Se puede materializar con una vista? ¿O cachear a nivel de aplicación? - Estrategia de particionado si la tabla seguirá creciendo ## VERIFICACIÓN Cómo confirmar que la optimización funcionó: ```sql EXPLAIN (ANALYZE, BUFFERS, FORMAT TEXT) [QUERY OPTIMIZADA]; ``` Qué métricas mirar en el output ## MONITORIZACIÓN CONTINUA 3 queries de sistema para detectar queries lentas automáticamente