SQL Tuning ili SQL optimizacija

Sadržaj

Neki upiti troše više resursa od drugih. Na primjer, upiti koji vraćaju velike skupove rezultata i oni koji sadrže jedinstvene klauzule WHERE uvijek su intenzivni za resurse. Nikakav stupanj inteligencije sql baza podataka ne čini dobar posao optimiziranja upita niti može eliminirati troškove resursa ovih konstrukcija u usporedbi s manje složenim upitima.
Do istih rezultata možemo doći pisanjem različitih SQL upita. No, korištenje najboljeg upita važno je pri razmatranju izvedbe. SQL podešavanje je proces koji osigurava da će se SQL izrazi koje aplikacija generira izvršiti u najkraćem mogućem roku. Ovi SQL upiti mogu se optimizirati za bolje performanse.
Tehnike optimizacije ili SQL Tuning
Zatim ćemo vidjeti neke tehnike optimizacije
SLUČAJ 1: SQL upit postaje brži ako koristite nazive polja nego * kao upit za sva polja tablice
ODABERI * OD klijenata

Optimalnije je upisati upit na ovaj način
SELECT id, name, address FROM client

SLUČAJ 2: Odredba HAVING koristi se za filtriranje redaka nakon što su svi redovi odabrani.
 ODABERITE predmet, broj (učenika) broj_UČENIKA OD upisanih GDJE predmet = 'Kemija' I predmet = 'Povijest' GRUPA PO predmetu;

Optimalnije je upisati upit na ovaj način
 SELECTmaterija, broj (studenti) broj_alumnos IZ upisanih GRUPA PO PREDMETU IMAJUĆI predmet = 'Kemija' I predmet = 'Povijest'

SLUČAJ 3: Ponekad možemo imati više od jednog podupita u glavnom upitu. Pogledajmo u sljedećem primjeru kako minimizirati blok podupita u vašem upitu.
Konzultiramo se s najstarijim i najplaćenijim zaposlenikom.
 SELECT naziv OD zaposlenika GDJE je plaća = (SELECT MAX (plaća) OD zaposlenika) I dob = (SELECT MAX (dob) OD zaposlenika) AND kategorija = 'Elektronika';

Optimalnije je upisati upit na sljedeći način
 SELECT naziv OD zaposlenika GDJE (plaća, dob) = (SELECT MAX (plaća), MAX (dob) OD zaposlenika) AND item = 'Elektronika';

SLUČAJ 4: Korištenje odgovarajućeg operatora EXISTS, IN i tabličnih pridruživača u vašem upitu važno je jer se radi o transakcijama koje usporavaju pristup podacima.
Općenito najsporije performanse u Canda upitima.
IN je učinkovit kada se većina kriterija filtra nalazi u podupitu.
Exist je učinkovit kada se većina kriterija filtriranja nalazi u glavnom upitu.
Pogledajmo neke primjere
 Odaberite * s p proizvoda gdje je product_id IN (odaberite product_id iz narudžbe)

Optimalnije je napisati na sljedeći način
 Odaberite * iz proizvoda gdje POSTOJI (odaberite * iz narudžbi u kojima je orders.product_id = product.product_id)

Koristiti postoje umjesto RAZLIKUJE
Primjer pogledajte koje kategorije imaju dostupne knjige
 ODABERITE RAZLIKU kategorije.id, kategorije.kategorije IZ kategorija, knjige GDJE kategorije.id = knjige.idkategorija;

Optimalnije je upisati upit na sljedeći način
 ODABERITE RAZLIKU kategorije.id, kategorije.kategorije IZ kategorija GDJE POSTOJI (ODABERITE 'X' IZ knjiga GDJE books.idcategory = categories.id);

Ovo su neki savjeti koji će uštedjeti resurse pri izvršavanju sql upita, a time i imati aplikaciju s bržim odgovorima.Je li vam se svidio i pomogao ovaj vodič?Autor možete nagraditi pritiskom na ovaj gumb kako biste mu dali pozitivan bod
wave wave wave wave wave