Sintassi SQL efficiente

Utilizzate JOIN (nella clausola FROM ) per includere una tabella in una query anziché usare una sottoquery nella clausola WHERE . Questo suggerimento vale anche se i dati della tabella vi servono solo per le operazioni di filtraggio e non per il set di risultati.

L'esecuzione del join di più tabelle nella clausola FROM offre risultati migliori rispetto all'uso di una sottoquery nella clausola WHERE .

Evitate le istruzioni SQL che non supportano l'uso di indici. Queste istruzioni includono l'uso di funzioni aggregate in una sottoquery, un'istruzione UNION in una sottoquery o una clausola ORDER BY con un'istruzione UNION .

Gli indici possono aumentare significativamente la velocità di elaborazione di una query SELECT . In alcuni casi, tuttavia, la sintassi SQL impedisce al database di utilizzare gli indici e lo obbliga a usare i dati effettivi per le operazioni di ricerca e ordinamento.

Evitate di utilizzare l'operatore LIKE , soprattutto con un carattere jolly iniziale come in LIKE('%XXXX%') .

Poiché l'operazione LIKE supporta le ricerche con caratteri jolly, la sua esecuzione è più lenta rispetto ai confronti con corrispondenza esatta. In particolare, se iniziate la stringa di ricerca con un carattere jolly, il database non potrà utilizzare gli indici nella ricerca. È invece necessario che il database possa cercare tutto il testo di ogni riga della tabella.

Evitate di utilizzare l'operatore IN . Se conoscete in anticipo i valori possibili, potete scrivere l'operazione IN utilizzando AND o OR per accelerare l'esecuzione.

La seconda delle due istruzioni seguenti viene eseguita più velocemente. perché utilizza semplici espressioni di uguaglianza insieme a OR invece di utilizzare le istruzioni IN() o NOT IN() :

-- Slower 
SELECT lastName, firstName, salary 
FROM main.employees 
WHERE salary IN (2000, 2500) 
     
-- Faster 
SELECT lastName, firstName, salary 
FROM main.employees 
WHERE salary = 2000 
    OR salary = 2500
Provate a utilizzare versioni alternative di un'istruzione SQL per migliorare le prestazioni.

Come dimostrano gli esempi precedenti, il modo in cui scrivete un'istruzione SQL può influire anche sulle prestazioni del database. In genere è possibile scrivere un'istruzione SQL SELECT in vari modi per recuperare un determinato set di risultati. In alcuni casi un approccio è significativamente più veloce di un altro. Oltre ai suggerimenti indicati in precedenza, potete consultare risorse specifiche del linguaggio SQL per ottenere maggiori informazioni sulle varie istruzioni SQL e sulle relative prestazioni.