Inhoudsopgave
Sommige query's verbruiken meer bronnen dan andere. Query's die bijvoorbeeld grote resultaatsets retourneren en query's die WHERE-clausules bevatten die niet uniek zijn, zijn altijd arbeidsintensief. Geen enkele mate van intelligentie van sql-databases kan query's goed optimaliseren, noch kunnen ze de resourcekosten van deze constructies elimineren in vergelijking met een minder complexe query.We kunnen dezelfde resultaten krijgen door verschillende SQL-query's te schrijven. Maar het gebruik van de beste query is belangrijk bij het overwegen van prestaties. SQL Tuning is het proces om ervoor te zorgen dat de SQL-instructies die een toepassing genereert, in de kortst mogelijke tijd worden uitgevoerd.Deze SQL-query's kunnen worden geoptimaliseerd voor betere prestaties.
Optimalisatietechnieken of SQL Tuning
Vervolgens zullen we enkele optimalisatietechnieken zien
ZAAK 1: De SQL-query wordt sneller als u de namen van de velden gebruikt dan de * als query van alle velden van de tabel
SELECTEER * VAN klanten
Het is beter om de query op deze manier te schrijven
SELECT ID, naam, adres FROM clients
GEVAL 2: De HAVING-clausule wordt gebruikt om de rijen te filteren nadat alle rijen zijn geselecteerd.
SELECTEER vak, aantal (studenten) aantal_studenten VANAF ingeschreven WAAR vak = 'Chemie' EN vak = 'Geschiedenis' GROEP OP vak;
Het is beter om de query op deze manier te schrijven
SELECTmateria, aantal (studenten) number_alumnos VAN ingeschreven GROEP PER onderwerp HEBBEN onderwerp = 'Chemie' EN onderwerp = 'Geschiedenis'
GEVAL 3: Soms hebben we meer dan één subquery in de hoofdquery. Laten we in het volgende voorbeeld kijken hoe u het subqueryblok in uw query kunt minimaliseren.
Wij raadplegen de oudste en best betaalde werknemer.
SELECT naam FROM medewerkers WHERE salaris = (SELECT MAX (salaris) FROM medewerkers) AND leeftijd = (SELECT MAX (leeftijd) FROM medewerkers) AND categorie = 'Elektronica';
Het is beter om de query op de volgende manier te schrijven:
SELECT naam FROM medewerkers WHERE (salaris, leeftijd) = (SELECT MAX (salaris), MAX (leeftijd) FROM medewerkers) AND item = 'Elektronica';
GEVAL 4: Het is belangrijk om de EXISTS-, IN-operator en tabeljoins op de juiste manier in uw query te gebruiken, omdat het transacties zijn die de toegang tot gegevens vertragen.
Over het algemeen traagste prestaties in canda query.
IN is efficiënt wanneer de meeste filtercriteria zich in de subquery bevinden.
Bestaan is efficiënt wanneer de meeste filtercriteria zich in de hoofdquery bevinden.
Laten we enkele voorbeelden bekijken
Selecteer * van product p waar product_id IN (selecteer product_id van bestellingen)
Het is beter om het als volgt te schrijven:
Selecteer * van product waar BESTAAT (selecteer * van bestellingen waar orders.product_id = product.product_id)
Gebruik maken van bestaan in plaats van VERSCHILLEND
Voorbeeld bekijken in welke categorieën boeken beschikbaar zijn
SELECTEER DISTINCT categorieën.id, categorieën.categories UIT categorieën, boeken WAAR categorieën.id = books.idcategory;
Het is beter om de query als volgt te schrijven:
SELECTEER DISTINCT categorieën.id, categorieën.categories UIT categorieën WAAR BESTAAT (SELECTEER 'X' UIT boeken WAAR books.idcategory = categorieën.id);
Dit zijn enkele tips die middelen besparen bij het uitvoeren van sql-query's en dus ook een applicatie hebben met snellere reacties.Vond je deze Tutorial leuk en heb je eraan geholpen?Je kunt de auteur belonen door op deze knop te drukken om hem een positief punt te geven