Ottimizzatore di Query SQL
L'Ottimizzatore di Query SQL prende una query SQL lenta o poco performante e produce un'analisi di ottimizzazione completa. Esamina la struttura della query, identifica i colli di bottiglia, raccomanda strategie di indicizzazione e fornisce versioni riscritte con spiegazioni del perché ogni modifica migliora la performance.
Sviluppatori backend, database administrator e data analyst usano questo template quando incontrano query lente in produzione, durante audit di performance, o quando migrano a dataset più grandi che rivelano inefficienze prima nascoste. Funziona con PostgreSQL, MySQL, SQL Server e altri database relazionali.
Il prompt è strutturato per andare oltre suggerimenti superficiali come "aggiungi un indice". Richiede il motore di database e il contesto dello schema così l'AI può fornire raccomandazioni specifiche per il motore. Separa le correzioni rapide dalle modifiche strutturali, offrendoti un percorso prioritizzato dalla soluzione più veloce al refactoring più impattante. Il formato di confronto prima/dopo rende facile verificare i miglioramenti.
This prompt is just the starting point
Score it with AI, optimize it with one click, track versions, and build your prompt library.
The Prompt
Analizza la seguente query SQL per problemi di performance e fornisci una versione ottimizzata: **Motore di Database**: [PostgreSQL / MySQL / SQL Server / SQLite / Altro] **Tempo di Esecuzione Attuale** (se noto): [es. 4,2 secondi] **Schema delle Tabelle** (tabelle e colonne rilevanti): ```sql [INCOLLA I CREATE TABLE O DESCRIVI LO SCHEMA: nomi tabelle, nomi colonne, tipi di dato, indici esistenti, numero approssimativo di righe] ``` **La Query Lenta**: ```sql [INCOLLA QUI LA TUA QUERY SQL] ``` **Contesto**: [COSA FA QUESTA QUERY? es. "Recupera tutti gli ordini con i dettagli del cliente degli ultimi 30 giorni, usata in un endpoint della dashboard chiamato 50 volte al minuto"] Fornisci la tua analisi con questa struttura: 1. **Valutazione della Query**: In 2-3 frasi, descrivi cosa fa la query e identifica il collo di bottiglia più probabile. 2. **Dettaglio dei Problemi**: Elenca ogni problema di performance trovato, ordinato per impatto. Per ciascuno: - Cosa: Nomina il problema specifico (es. "Full table scan sulla tabella ordini", "Subquery correlata eseguita per ogni riga") - Perché è un problema: Spiega l'impatto sulla performance in termini concreti - Soluzione: Descrivi la correzione 3. **Raccomandazioni sugli Indici**: Suggerisci indici specifici da creare, includendo: - L'istruzione CREATE INDEX esatta - Quale parte della query viene aiutata da ogni indice - Se si tratta di un indice a colonna singola, composito, parziale o covering - Eventuali compromessi (overhead in scrittura, costo di storage) 4. **Query Ottimizzata**: Scrivi la query riscritta con commenti inline che spiegano ogni modifica. Se ci sono più livelli di ottimizzazione, fornisci: - **Correzione Rapida**: Modifiche minime per un miglioramento immediato (es. aggiunta di una clausola WHERE mancante, correzione dell'ordine dei join) - **Riscrittura Completa**: La versione con le migliori performance, che potrebbe ristrutturare significativamente la query (es. sostituire subquery con CTE o window function, materializzare risultati intermedi) 5. **Impatto Atteso**: Stima il miglioramento di performance per ogni livello di ottimizzazione (es. "L'aggiunta dell'indice da sola dovrebbe ridurre il tempo da ~4s a ~200ms, eliminando la full table scan"). 6. **Passaggi di Verifica**: Fornisci il comando EXPLAIN o EXPLAIN ANALYZE da eseguire prima e dopo, e spiega cosa cercare nell'output per confermare che l'ottimizzazione funziona.
Usage Tips
- Includi sempre lo schema: Una query non può essere ottimizzata in isolamento. Come minimo, fornisci nomi delle tabelle, tipi di colonna, indici esistenti e numero approssimativo di righe. Più contesto sullo schema dai, più precise saranno le raccomandazioni.
- Condividi l'output di EXPLAIN se ce l'hai: Incolla l'execution plan insieme alla query. Questo elimina le supposizioni e permette all'AI di individuare il collo di bottiglia esatto invece di ipotizzare.
- Specifica il motore di database: PostgreSQL, MySQL e SQL Server hanno ottimizzatori diversi, tipi di indice diversi e sintassi diverse per hint e CTE. I consigli specifici per il motore sono enormemente più utili dei consigli SQL generici.
- Testa prima la Correzione Rapida: La query ottimizzata include spesso sia una correzione rapida che una riscrittura completa. Applica prima la correzione rapida per un sollievo immediato, poi valida e applica la riscrittura completa durante un ciclo di sviluppo dedicato.
- Attenzione ai compromessi: Ogni nuovo indice accelera le letture ma rallenta le scritture. Se la tua tabella ha traffico intenso in scrittura, segnalalo nel contesto così l'AI potrà raccomandare indici parziali o altre strategie compatibili con carichi di scrittura elevati.
Get more from this prompt
Save it, score it with AI, optimize it, and track every version. Free to start.