sql-pro
jeffallan/claude-skills
Optimiza consultas SQL, diseña esquemas de bases de datos y resuelve problemas de rendimiento. Úsalo cuando un usuario pregunte por qué su consulta es lenta, necesite ayuda para escribir uniones o agregaciones complejas, mencione problemas de rendimiento de la base de datos o quiera diseñar o migrar un esquema. Recurrir a esta función para consultas complejas, funciones de ventana, CTE, estrategias de indexación, análisis de planes de consulta, creación de índices de cobertura, consultas recursivas, interpretación de EXPLAIN/ANALYZE, comparativas de rendimiento antes y después de la consulta, o migración de consultas entre bases de datos.
...Expandir todoAcerca de sql-pro
SQL Pro es una habilidad de IA especializada diseñada para mejorar la eficiencia de las consultas a bases de datos, optimizar el diseño de esquemas y resolver problemas de rendimiento. Aborda los retos habituales en las bases de datos relacionales, en las que las consultas se ejecutan lentamente o son difíciles de mantener, especialmente cuando se trata de uniones complejas, agregaciones o conjuntos de datos de gran tamaño. Mediante el análisis de consultas SQL, planes de ejecución y estrategias de indexación, esta habilidad ayuda a los usuarios a identificar cuellos de botella y a aplicar las mejores prácticas para lograr un rendimiento de la base de datos más rápido y predecible.
La habilidad ofrece un flujo de trabajo estructurado que comienza con el análisis del esquema, evaluando las estructuras de la base de datos, los índices y los patrones de consulta para identificar las limitaciones de rendimiento. A continuación, ayuda a diseñar consultas utilizando técnicas avanzadas como las expresiones de tabla común (CTE), las funciones de ventana y las estrategias de unión adecuadas. Las funciones de optimización incluyen el análisis de planes de ejecución, la creación de índices de cobertura, la eliminación de exploraciones completas de tablas y el refinamiento iterativo para cumplir los objetivos de rendimiento. SQL Pro también hace hincapié en la verificación mediante los resultados de `EXPLAIN ANALYZE`, lo que garantiza que las consultas se ejecuten de forma eficiente y que los índices se utilicen de manera eficaz. Se proporciona documentación exhaustiva sobre las consultas, la justificación de los índices y las métricas de rendimiento para facilitar el mantenimiento y la transferencia de conocimientos.
SQL Pro está destinado a administradores de bases de datos, desarrolladores e ingenieros de datos que trabajan con bases de datos PostgreSQL, MySQL, SQL Server u Oracle y necesitan conocimientos especializados en el ajuste de consultas, la migración de esquemas o la optimización del rendimiento. Entre los casos de uso habituales se incluyen la aceleración de consultas lentas, el diseño de esquemas normalizados, la conversión de consultas entre dialectos de bases de datos, el análisis de planes de ejecución y la implementación de análisis complejos sin sacrificar la eficiencia. Su orientación resulta especialmente valiosa en escenarios que requieren funciones avanzadas de SQL, como consultas recursivas, funciones de ventana y pruebas comparativas de rendimiento, lo que lo convierte en una herramienta clave para los equipos que desean mantener aplicaciones de bases de datos escalables y de alto rendimiento.
Preguntas frecuentes
¿Cómo utilizo SQL Pro para optimizar una consulta lenta?
Proporcione la consulta y la información relevante del esquema. SQL Pro analizará los planes de ejecución, sugerirá mejoras en los índices y reescribirá las consultas utilizando patrones eficientes, como las CTE o las uniones de agregación.
¿Qué sistemas de bases de datos son compatibles con SQL Pro?
SQL Pro es compatible con PostgreSQL, MySQL, SQL Server y Oracle, e incluye orientación sobre las diferencias entre estos dialectos.
¿Puede SQL Pro gestionar consultas analíticas complejas con funciones de ventana?
Sí. Ofrece orientación para utilizar de forma eficiente funciones de ventana como ROW_NUMBER, RANK, SUM y LAG/LEAD dentro de particiones sin autouniones innecesarias.
¿Qué debo comprobar al utilizar EXPLAIN ANALYZE con SQL Pro?
Las comprobaciones clave incluyen detectar escaneos secuenciales en tablas grandes, comparar el recuento real de filas con el estimado y revisar los aciertos en el búfer y las lecturas para identificar índices que faltan o estadísticas obsoletas.
¿Existen limitaciones o requisitos previos para utilizar SQL Pro?
Los usuarios deben tener acceso a los esquemas de la base de datos y privilegios suficientes para ejecutar consultas y analizar planes de ejecución. Las mejoras de rendimiento dependen de una indexación adecuada, de la estructura de las consultas y de las estadísticas de la base de datos.
SQL Pro
Core Workflow
- Schema Analysis - Review database structure, indexes, query patterns, performance bottlenecks
- Design - Create set-based operations using CTEs, window functions, appropriate joins
- Optimize - Analyze execution plans, implement covering indexes, eliminate table scans
- Verify - Run
EXPLAIN ANALYZEand confirm no sequential scans on large tables; if query does not meet sub-100ms target, iterate on index selection or query rewrite before proceeding - Document - Provide query explanations, index rationale, performance metrics
Reference Guide
Load detailed guidance based on context:
| Topic | Reference | Load When |
|---|---|---|
| Query Patterns | references/query-patterns.md | JOINs, CTEs, subqueries, recursive queries |
| Window Functions | references/window-functions.md | ROW_NUMBER, RANK, LAG/LEAD, analytics |
| Optimization | references/optimization.md | EXPLAIN plans, indexes, statistics, tuning |
| Database Design | references/database-design.md | Normalization, keys, constraints, schemas |
| Dialect Differences | references/dialect-differences.md | PostgreSQL vs MySQL vs SQL Server specifics |
Quick-Reference Examples
CTE Pattern
-- Isolate expensive subquery logic for reuse and readabilityWITH ranked_orders AS ( SELECT customer_id, order_id, total_amount, ROW_NUMBER() OVER (PARTITION BY customer_id ORDER BY order_date DESC) AS rn FROM orders WHERE status = 'completed' -- filter early, before the join)SELECT customer_id, order_id, total_amountFROM ranked_ordersWHERE rn = 1; -- latest completed order per customer
Window Function Pattern
-- Running total and rank within partition — no self-join requiredSELECT department_id, employee_id, salary, SUM(salary) OVER (PARTITION BY department_id ORDER BY hire_date) AS running_payroll, RANK() OVER (PARTITION BY department_id ORDER BY salary DESC) AS salary_rankFROM employees;
EXPLAIN ANALYZE Interpretation
-- PostgreSQL: always use ANALYZE to see actual row counts vs. estimatesEXPLAIN (ANALYZE, BUFFERS, FORMAT TEXT)SELECT *FROM orders oJOIN customers c ON c.id = o.customer_idWHERE o.created_at > NOW() - INTERVAL '30 days';
Key things to check in the output:
- Seq Scan on large table → add or fix an index
- actual rows ≫ estimated rows → run
ANALYZE <table>to refresh statistics - Buffers: shared hit vs read → high
readcount signals missing cache / index
Before / After Optimization Example
-- BEFORE: correlated subquery, one execution per row (slow)SELECT order_id, (SELECT SUM(quantity) FROM order_items oi WHERE oi.order_id = o.id) AS item_countFROM orders o;-- AFTER: single aggregation join (fast)SELECT o.order_id, COALESCE(agg.item_count, 0) AS item_countFROM orders oLEFT JOIN ( SELECT order_id, SUM(quantity) AS item_count FROM order_items GROUP BY order_id) agg ON agg.order_id = o.id;-- Supporting covering index (includes all columns touched by the query)CREATE INDEX idx_order_items_order_qty ON order_items (order_id) INCLUDE (quantity);
Constraints
MUST DO
- Analyze execution plans before recommending optimizations
- Use set-based operations over row-by-row processing
- Apply filtering early in query execution (before joins where possible)
- Use EXISTS over COUNT for existence checks
- Handle NULLs explicitly in comparisons and aggregations
- Create covering indexes for frequent queries
- Test with production-scale data volumes
MUST NOT DO
- Use SELECT * in production queries
- Use cursors when set-based operations work
- Ignore platform-specific optimizations when targeting a specific dialect
- Implement solutions without considering data volume and cardinality
Output Templates
When implementing SQL solutions, provide:
- Optimized query with inline comments
- Required indexes with rationale
- Execution plan analysis
- Performance metrics (before/after)
- Platform-specific notes if applicable
Documentation
Todos los archivos
6 archivosInstalar sql-pro
Descarga y descomprime los archivos de las habilidades en tu directorio .claude/skills/.
Descargar ZIPClona el repositorio y copia los archivos de la habilidad a tu proyecto.
git clone https://github.com/Jeffallan/claude-skills/blob/main/skills/sql-pro/SKILL.md # Copy SKILL.md to your .claude/skills/ directory
Copiar





Hogar
