SQL Tuning vai SQL optimizācija

Satura rādītājs

Daži vaicājumi patērē vairāk resursu nekā citi. Piemēram, vaicājumi, kas atgriež lielas rezultātu kopas, un tie, kas satur WHERE klauzulas, kas nav unikālas, vienmēr ir resursietilpīgi. Neviena SQL datu bāzu izlūkošanas pakāpe neveic vaicājumu optimizāciju, kā arī nevar novērst šo konstrukciju resursu izmaksas salīdzinājumā ar mazāk sarežģītu vaicājumu.
Mēs varam iegūt tos pašus rezultātus, rakstot dažādus SQL vaicājumus. Bet, apsverot veiktspēju, ir svarīgi izmantot labāko vaicājumu. SQL Tuning ir process, kas nodrošina, ka lietojumprogrammas ģenerētie SQL paziņojumi tiks izpildīti pēc iespējas īsākā laikā. Šos SQL vaicājumus var optimizēt, lai nodrošinātu labāku veiktspēju.
Optimizācijas metodes vai SQL Tuning
Tālāk mēs redzēsim dažas optimizācijas metodes
1. gadījums: SQL vaicājums kļūst ātrāks, ja izmantojat lauku nosaukumus nekā * kā vaicājumu visiem tabulas laukiem
SELECT * FROM klientiem

Optimālāk ir rakstīt vaicājumu šādā veidā
ATLASIET ID, vārdu, adresi no klientiem

2. gadījums: Klausuli HAVING izmanto, lai filtrētu rindas pēc visu rindu atlasīšanas.
 SELECT priekšmets, skaits (studenti) number_students NO uzņemtajiem WHERE priekšmets = 'Ķīmija' UN priekšmets = 'Vēsture' GRUPA PĒC mācību priekšmeta;

Optimālāk ir rakstīt vaicājumu šādā veidā
 SELECTmateriāli, skaits (studenti) number_alumnos no reģistrētās GRUPAS PĒC mācību priekšmeta, kam priekšmets = 'Ķīmija' UN priekšmets = 'Vēsture'

3. gadījums: Dažreiz galvenajā vaicājumā mums var būt vairāki apakšvaicājumi. Šajā piemērā apskatīsim, kā samazināt vaicājuma apakšvaicājumu bloku.
Mēs konsultējam vecāko un vislabāk apmaksāto darbinieku.
 SELECT vārdu no darbiniekiem KUR alga = = (SELECT MAX (alga) FROM darbinieki) UN vecums = (SELECT MAX (vecums) no darbiniekiem) UN kategorija = 'Elektronika';

Optimālāk ir rakstīt vaicājumu šādā veidā
 SELECT vārdu no darbiniekiem WHERE (alga, vecums) = (SELECT MAX (alga), MAX (vecums) NO darbiniekiem) UN item = 'Electronics';

4. gadījums: Ir svarīgi izmantot vaicājumā atbilstošu operatoru EXISTS, IN un tabulu, jo tie ir darījumi, kas palēnina piekļuvi datiem.
Parasti lēnākā veiktspēja canda vaicājumā.
IN ir efektīvs, ja lielākā daļa filtra kritēriju atrodas apakšvaicājumā.
Esoša ir efektīva, ja lielākā daļa filtra kritēriju ir galvenajā vaicājumā.
Apskatīsim dažus piemērus
 Atlasiet * no produkta p kur product_id IN (atlasiet product_id no pasūtījumiem)

Optimālāk ir to rakstīt šādi
 Atlasiet * no produkta, kurā PASTĀV (atlasiet * no pasūtījumiem, kur pasūtījumi.product_id = product.product_id)

Izmantot pastāv tā vietā ATŠĶIRT
Piemēram, skatiet, kādās kategorijās ir pieejamas grāmatas
 SELECT DISTINCT category.id, Categories.categories FROM Categories, grāmatas WHERE category.id = books.idcategory;

Optimālāk ir rakstīt vaicājumu šādi
 SELECT DISTINCT category.id, Categories.categories FROM Categories WHERE EXISTS (ATLASI “X” NO grāmatām WHERE books.idcategory = category.id);

Šie ir daži padomi, kas ietaupīs resursus, izpildot SQL vaicājumus, un tādējādi tiem būs arī lietojumprogramma ar ātrāku atbildi.Vai jums patika šī apmācība un palīdzējāt tai?Jūs varat apbalvot autoru, nospiežot šo pogu, lai sniegtu viņam pozitīvu punktu
wave wave wave wave wave