SQL Tuning eller SQL optimering

Indholdsfortegnelse

Nogle forespørgsler bruger flere ressourcer end andre. Forespørgsler, der returnerer store resultatsæt, og dem, der indeholder WHERE -klausuler, der ikke er unikke, er altid ressourceintensive. Ingen grad af intelligens i sql -databaser gør et godt stykke arbejde med at optimere forespørgsler, og de kan heller ikke fjerne ressourceomkostningerne ved disse konstruktioner i forhold til en mindre kompleks forespørgsel.
Vi kan få de samme resultater ved at skrive forskellige SQL -forespørgsler. Men at bruge den bedste forespørgsel er vigtig, når man overvejer ydeevne. SQL Tuning er processen med at sikre, at de SQL -sætninger, som et program genererer, udføres på kortest mulig tid. Disse SQL -forespørgsler kan optimeres til bedre ydeevne.
Optimeringsteknikker eller SQL Tuning
Dernæst ser vi nogle optimeringsteknikker
SAG 1: SQL -forespørgslen bliver hurtigere, hvis du bruger felternes navne end * som forespørgsel på alle felterne i tabellen
VÆLG * FRA klienter

Det er mere optimalt at skrive forespørgslen på denne måde
VÆLG id, navn, adresse FRA klienter

SAG 2: HAVING -klausulen bruges til at filtrere rækkerne, efter at alle rækkerne er valgt.
 VÆLG emne, tæl (studerende) number_students FROM tilmeldt WHERE subject = 'Chemistry' AND subject = 'History' GROUP BY subject;

Det er mere optimalt at skrive forespørgslen på denne måde
 SELECTmateria, count (students) number_alumnos FRA tilmeldte GROUP BY subject HAVING subject = 'Chemistry' AND subject = 'History'

SAG 3: Nogle gange kan vi have mere end én underforespørgsel i hovedforespørgslen. Lad os se i det følgende eksempel, hvordan du minimerer underspørgselsblokken i din forespørgsel.
Vi rådfører os med den ældste og bedst betalte medarbejder.
 VÆLG navn FRA ansatte, HVOR løn = (VÆLG MAX (løn) FRA ansatte) OG alder = (VÆLG MAX (alder) FRA ansatte) OG kategori = 'Elektronik';

Det er mere optimalt at skrive forespørgslen på følgende måde
 VÆLG navn FRA medarbejdere HVOR (løn, alder) = (VÆLG MAX (løn), MAX (alder) FRA ansatte) OG element = 'Elektronik';

SAG 4: Det er vigtigt at bruge EXISTS, IN -operatoren og tabelforbindelser korrekt i din forespørgsel, da det er transaktioner, der bremser adgangen til data.
Generelt langsommeste ydelse i canda -forespørgsel.
IN er effektiv, når de fleste filterkriterier er i underspørgsmålet.
Eksist er effektivt, når de fleste filterkriterier er i hovedforespørgslen.
Lad os se nogle eksempler
 Vælg * fra produkt p, hvor product_id IN (vælg product_id fra ordrer)

Det er mere optimalt at skrive det som følger
 Vælg * fra produkt, hvor der EKSISTERES (vælg * fra ordrer, hvor orders.product_id = product.product_id)

Brug eksisterer i stedet for DISTINCT
Eksempel se, hvilke kategorier der har bøger til rådighed
 VÆLG DISTINCT kategorier.id, kategorier.kategorier FRA kategorier, bøger HVOR kategorier.id = bøger.idkategori;

Det er mere optimalt at skrive forespørgslen som følger
 VÆLG DISTINCT kategorier.id, kategorier.kategorier FRA kategorier, HVOR FINDES (VÆLG 'X' FRA bøger HVOR bøger.idkategori = kategorier.id);

Dette er nogle tips, der vil spare ressourcer, når du udfører sql -forespørgsler og dermed også har en applikation med hurtigere svar.Kan du lide og hjælpe denne vejledning?Du kan belønne forfatteren ved at trykke på denne knap for at give ham et positivt punkt
wave wave wave wave wave