Ottimizzazione SQL o ottimizzazione SQL

Sommario

Alcune query consumano più risorse di altre. Ad esempio, le query che restituiscono set di risultati di grandi dimensioni e quelle che contengono clausole WHERE non univoche richiedono sempre molte risorse. Nessun grado di intelligenza dei database sql fa un buon lavoro di ottimizzazione delle query né può eliminare il costo delle risorse di questi costrutti rispetto a una query meno complessa.
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
wave wave wave wave wave