sql-pro
jeffallan/claude-skills
Optimiert SQL-Abfragen, entwirft Datenbankschemata und behebt Leistungsprobleme. Setzen Sie diesen Service ein, wenn ein Benutzer fragt, warum seine Abfrage langsam ist, Hilfe beim Erstellen komplexer Verknüpfungen oder Aggregationen benötigt, Probleme mit der Datenbankleistung anspricht oder ein Schema entwerfen oder migrieren möchte. Rufen Sie diese Funktion bei komplexen Abfragen, Fensterfunktionen, CTEs, Indizierungsstrategien, der Analyse von Abfrageplänen, der Erstellung von Covering-Indizes, rekursiven Abfragen, der Interpretation von EXPLAIN/ANALYZE, Benchmarking vor und nach der Abfrage oder der Migration von Abfragen zwischen Datenbanken auf.
...Alle erweiternÜber sql-pro
SQL Pro ist eine spezialisierte KI-Funktion, die darauf ausgelegt ist, die Effizienz von Datenbankabfragen zu steigern, das Schema-Design zu optimieren und Leistungsprobleme zu beheben. Sie befasst sich mit häufigen Herausforderungen in relationalen Datenbanken, bei denen Abfragen langsam ausgeführt werden oder schwer zu warten sind, insbesondere im Umgang mit komplexen Verknüpfungen, Aggregationen oder großen Datensätzen. Durch die Analyse von SQL-Abfragen, Ausführungsplänen und Indizierungsstrategien hilft diese Funktion den Nutzern, Engpässe zu identifizieren und Best Practices umzusetzen, um eine schnellere und besser vorhersehbare Datenbankleistung zu erzielen.
Die Funktion bietet einen strukturierten Arbeitsablauf, der mit einer Schemaanalyse beginnt, bei der Datenbankstrukturen, Indizes und Abfragemuster ausgewertet werden, um Leistungsengpässe zu lokalisieren. Anschließend unterstützt sie bei der Gestaltung von Abfragen mithilfe fortgeschrittener Techniken wie Common Table Expressions (CTEs), Fensterfunktionen und geeigneten Verknüpfungsstrategien. Zu den Optimierungsfunktionen gehören die Analyse von Ausführungsplänen, die Erstellung von Covering-Indizes, die Vermeidung von Volltabellenscans sowie die iterative Verfeinerung zur Erreichung der Leistungsziele. SQL Pro legt zudem Wert auf die Überprüfung anhand der `EXPLAIN ANALYZE`-Ausgaben, um sicherzustellen, dass Abfragen effizient ausgeführt und Indizes effektiv genutzt werden. Eine umfassende Dokumentation der Abfragen, der Gründe für die Indexierung und der Leistungsmetriken wird bereitgestellt, um die Wartbarkeit und den Wissenstransfer zu unterstützen.
SQL Pro richtet sich an Datenbankadministratoren, Entwickler und Dateningenieure, die mit PostgreSQL-, MySQL-, SQL Server- oder Oracle-Datenbanken arbeiten und Fachwissen in den Bereichen Abfrageoptimierung, Schemamigration oder Leistungsoptimierung benötigen. Typische Anwendungsfälle umfassen die Beschleunigung langsamer Abfragen, den Entwurf normalisierter Schemata, die Konvertierung von Abfragen zwischen Datenbankdialekten, die Analyse von Ausführungsplänen und die Implementierung komplexer Analysen ohne Einbußen bei der Effizienz. Die Anleitung ist besonders wertvoll in Szenarien, die fortgeschrittene SQL-Funktionen wie rekursive Abfragen, Fensterfunktionen und Leistungsbenchmarking erfordern, was das Tool zu einem wichtigen Hilfsmittel für Teams macht, die hochleistungsfähige, skalierbare Datenbankanwendungen betreiben möchten.
FAQ
Wie nutze ich SQL Pro, um eine langsame Abfrage zu optimieren?
Geben Sie die Abfrage und relevante Schemainformationen ein. SQL Pro analysiert Ausführungspläne, schlägt Indexverbesserungen vor und schreibt Abfragen unter Verwendung effizienter Muster wie CTEs oder Aggregations-Joins um.
Welche Datenbanksysteme werden von SQL Pro unterstützt?
SQL Pro unterstützt PostgreSQL, MySQL, SQL Server und Oracle und enthält Anleitungen zu den Unterschieden zwischen diesen Dialekten.
Kann SQL Pro komplexe Analyseabfragen mit Fensterfunktionen verarbeiten?
Ja. Es bietet Anleitungen zur effizienten Verwendung von Fensterfunktionen wie ROW_NUMBER, RANK, SUM und LAG/LEAD innerhalb von Partitionen ohne unnötige Selbstverknüpfungen.
Was sollte ich bei der Verwendung von EXPLAIN ANALYZE mit SQL Pro überprüfen?
Zu den wichtigsten Überprüfungen gehören das Erkennen von sequenziellen Scans bei großen Tabellen, der Vergleich der tatsächlichen mit den geschätzten Zeilenanzahlen sowie die Überprüfung von Puffertreffern und Lesevorgängen, um fehlende Indizes oder veraltete Statistiken zu identifizieren.
Gibt es Einschränkungen oder Voraussetzungen für die Nutzung von SQL Pro?
Benutzer sollten Zugriff auf Datenbankschemata sowie ausreichende Berechtigungen zum Ausführen von Abfragen und zum Analysieren von Ausführungsplänen haben. Leistungsverbesserungen hängen von einer korrekten Indizierung, der Abfragestruktur und den Datenbankstatistiken ab.
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
Alle Dateien
6 Dateiensql-pro installieren
Laden Sie die Skill-Dateien herunter und entpacken Sie sie in Ihr Verzeichnis „.claude/skills/“.
ZIP herunterladenKlonen Sie das Repository und kopieren Sie die Skill-Dateien in Ihr Projekt.
git clone https://github.com/Jeffallan/claude-skills/blob/main/skills/sql-pro/SKILL.md # Copy SKILL.md to your .claude/skills/ directory
Kopieren





Heim
