Sommario
Possiamo ottenere gli stessi risultati scrivendo query SQL diverse. Ma l'utilizzo della query migliore è importante quando si considerano le prestazioni. SQL Tuning è il processo che garantisce che le istruzioni SQL generate da un'applicazione vengano eseguite nel più breve tempo possibile Queste query SQL possono essere ottimizzate per prestazioni migliori.
Tecniche di ottimizzazione o SQL Tuning
Successivamente vedremo alcune tecniche di ottimizzazione
CASO 1: La query SQL diventa più veloce se usi i nomi dei campi rispetto a * come query di tutti i campi della tabella
SELEZIONA * DA clienti
È più ottimale scrivere la query in questo modo
SELEZIONA id, nome, indirizzo DA clienti
CASO 2: La clausola HAVING viene utilizzata per filtrare le righe dopo che tutte le righe sono state selezionate.
SELEZIONA materia, conta (studenti) numero_studenti FROM iscritti WHERE materia = 'Chimica' AND materia = 'Storia' GROUP BY materia;
È più ottimale scrivere la query in questo modo
SELECTmateria, count (studenti) number_alumnos FROM iscritti GRUPPO PER soggetto HAVING soggetto = 'Chimica' AND soggetto = 'Storia'
CASO 3: A volte potremmo avere più di una sottoquery nella query principale. Vediamo nell'esempio seguente come ridurre al minimo il blocco della sottoquery nella query.
Consultiamo il dipendente più anziano e più pagato.
SELECT nome FROM dipendenti WHERE stipendio = (SELECT MAX (stipendio) FROM dipendenti) AND età = (SELECT MAX (età) FROM dipendenti) AND categoria = 'Elettronica';
È più ottimale scrivere la query nel modo seguente
SELECT nome FROM dipendenti WHERE (stipendio, età) = (SELECT MAX (stipendio), MAX (età) FROM dipendenti) AND item = 'Elettronica';
CASO 4: L'utilizzo appropriato dell'operatore EXISTS, IN e dei join di tabella nella query è importante in quanto si tratta di transazioni che rallentano l'accesso ai dati.
Prestazioni generalmente più lente nella query canda.
IN è efficiente quando la maggior parte dei criteri di filtro si trova nella sottoquery.
Esiste è efficiente quando la maggior parte dei criteri di filtro si trova nella query principale.
Vediamo alcuni esempi
Seleziona * dal prodotto p dove product_id IN (seleziona product_id dagli ordini)
È più ottimale scriverlo come segue
Seleziona * da prodotto in cui ESISTE (seleziona * da ordini in cui order.product_id = product.product_id)
Utilizzo esistere invece di DISTINTO
Esempio guarda quali categorie hanno libri disponibili
SELEZIONA DISTINTO categorie.id, categorie.categorie DA categorie, libri WHERE categorie.id = libri.idcategory;
È più ottimale scrivere la query come segue
SELEZIONARE DISTINTO categorie.id, categorie.categorie DA categorie DOVE ESISTE (SELEZIONARE 'X' DA libri DOVE libri.idcategory = categorie.id);
Questi sono alcuni suggerimenti che faranno risparmiare risorse durante l'esecuzione di query sql e quindi avranno anche un'applicazione con risposte più veloci.Ti è piaciuto e hai aiutato questo Tutorial?Puoi premiare l'autore premendo questo pulsante per dargli un punto positivo