Inhaltsverzeichnis
Einige Abfragen verbrauchen mehr Ressourcen als andere. Abfragen, die große Ergebnismengen zurückgeben, und Abfragen, die nicht eindeutige WHERE-Klauseln enthalten, sind beispielsweise immer ressourcenintensiv. Kein Intelligenzgrad von SQL-Datenbanken ist bei der Optimierung von Abfragen gut, noch können sie die Ressourcenkosten dieser Konstrukte im Vergleich zu einer weniger komplexen Abfrage eliminieren.Wir können die gleichen Ergebnisse erzielen, indem wir verschiedene SQL-Abfragen schreiben. Die Verwendung der besten Abfrage ist jedoch wichtig, wenn Sie die Leistung berücksichtigen. SQL-Tuning ist der Prozess, um sicherzustellen, dass die von einer Anwendung generierten SQL-Anweisungen in kürzester Zeit ausgeführt werden.Diese SQL-Abfragen können für eine bessere Leistung optimiert werden.
Optimierungstechniken oder SQL Tuning
Als nächstes werden wir einige Optimierungstechniken sehen
FALL 1: Die SQL-Abfrage wird schneller, wenn Sie die Namen der Felder als das * als Abfrage aller Felder der Tabelle verwenden
WÄHLEN * VON Kunden
Es ist optimaler, die Abfrage so zu schreiben
SELECT ID, Name, Adresse VON Clients
FALL 2: Die HAVING-Klausel wird verwendet, um die Zeilen zu filtern, nachdem alle Zeilen ausgewählt wurden.
SELECT Fach, Anzahl (Studenten) number_students FROM eingeschrieben WHERE Fach = 'Chemie' AND Fach = 'Geschichte' GROUP BY Fach;
Optimaler ist es, die Abfrage so zu schreiben
SELECTmateria, count (students) number_alumnos FROM eingeschrieben GRUPPE NACH Fach HAVING Fach = 'Chemie' AND Fach = 'Geschichte'
FALL 3: Manchmal haben wir möglicherweise mehr als eine Unterabfrage in der Hauptabfrage. Sehen wir uns im folgenden Beispiel an, wie Sie den Unterabfrageblock in Ihrer Abfrage minimieren.
Wir beraten den ältesten und bestbezahlten Mitarbeiter.
SELECT name FROM Mitarbeiter WHERE Gehalt = (SELECT MAX (Gehalt) FROM Mitarbeiter) AND Alter = (SELECT MAX (Alter) FROM Mitarbeiter) AND Kategorie = 'Elektronik';
Optimaler ist es, die Abfrage wie folgt zu schreiben
SELECT name FROM Mitarbeiter WHERE (Gehalt, Alter) = (SELECT MAX (Gehalt), MAX (Alter) FROM Mitarbeiter) AND item = 'Elektronik';
FALL 4: Die Verwendung des EXISTS-, IN-Operators und der Tabellen-Joins in Ihrer Abfrage ist wichtig, da es sich um Transaktionen handelt, die den Zugriff auf Daten verlangsamen.
Im Allgemeinen die langsamste Leistung bei der Kanada-Abfrage.
IN ist effizient, wenn sich die meisten Filterkriterien in der Unterabfrage befinden.
Exist ist effizient, wenn die meisten Filterkriterien in der Hauptabfrage enthalten sind.
Sehen wir uns einige Beispiele an
Select * from product p where product_id IN (select product_id from order)
Optimaler ist es, es wie folgt zu schreiben
Wählen Sie * aus dem Produkt aus, bei dem EXISTS vorhanden ist (wählen Sie * aus Bestellungen aus, bei denen order.product_id = product.product_id ist)
Benutzen existieren anstatt UNTERSCHEIDBAR
Beispiel sehen, in welchen Kategorien Bücher verfügbar sind
SELECT DISTINCT category.id, category.categories FROM Kategorien, Bücher WHERE Kategorien.id = books.idcategory;
Optimaler ist es, die Abfrage wie folgt zu schreiben
WÄHLE DISTINCT category.id, category.categories FROM Kategorien WHERE EXISTS (SELECT 'X' FROM books WHERE books.idcategory = Kategorien.id);
Dies sind einige Tipps, die beim Ausführen von SQL-Abfragen Ressourcen sparen und somit auch eine Anwendung mit schnelleren Antworten haben.Hat dir dieses Tutorial gefallen und geholfen?Sie können den Autor belohnen, indem Sie diesen Knopf drücken, um ihm einen positiven Punkt zu geben