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.
|
|
|