SQL-Tuning oder SQL-Optimierung

SQL-logo.jpg

Einige Konsultationen verbrauchen mehr Ressourcen als andere. Beispielsweise verbrauchen Abfragen, die große Ergebnismengen zurückgeben, und solche, die WHERE-Klauseln enthalten, die nicht eindeutig sind, immer viel Ressourcen. Kein Grad an Intelligenz in SQL-Datenbanken kann Abfragen gut optimieren oder die Ressourcenkosten dieser Konstrukte im Vergleich zu weniger komplexen Abfragen senken.

Wir können die gleichen Ergebnisse erzielen, indem wir verschiedene SQL-Abfragen schreiben. Die Verwendung der besten Abfrage ist jedoch wichtig, wenn die Leistung berücksichtigt wird. Durch SQL-Optimierung wird sichergestellt, 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
Nachfolgend sehen wir einige Optimierungstechniken

FALL 1: Die SQL-Abfrage wird schneller, wenn Sie die Namen der mit * gekennzeichneten Felder als Abfrage aller Felder in der Tabelle verwenden

 SELECT * FROM clients 

Es ist optimaler, die Abfrage auf diese Weise zu schreiben

 SELECT ID, Name, Adresse von Clients 

La Clausula HAVING se utiliza para filtrar las filas despues de que se han seleccionado todas las filas. FALL 2: Mit der HAVING-Klausel werden die Zeilen gefiltert, nachdem alle Zeilen ausgewählt wurden.

 SELECT subject, count (students) student_ amount VON eingeschrieben WO Materie = 'Chemie' AND materia = 'Geschichte' GROUP BY matter; 

Es ist optimaler, die Abfrage auf diese Weise zu schreiben

 SELECTmateria, zählen (Studenten) Alumniu VON eingeschrieben Gruppieren nach Materie HAVING matter = 'Chemie' AND materia = 'Geschichte' 

FALL 3: Manchmal ist es möglich, dass die Hauptabfrage mehr als eine Unterabfrage enthält. Das folgende Beispiel zeigt, wie Sie den Unterabfrageblock in Ihrer Abfrage minimieren können.

See also  Überprüfen Sie die Internetgeschwindigkeit mit dem Speedtest-cli-Test in CentOS 7

. Wir konsultieren den ältesten und höchsten Angestellten .

 SELECT name VON Mitarbeitern WO Gehalt = (MAX. AUSGEWÄHLT (Gehalt) VON Mitarbeitern) AND age = (SELECT MAX (age) FROM employee) AND item = 'Electronica'; 

Es ist optimaler, die Abfrage auf folgende Weise zu schreiben

 SELECT name VON Mitarbeitern WO (Gehalt, Alter) = (SELECT MAX (Gehalt), MAX (Alter) VON Mitarbeitern) AND item = 'Electronica'; 

FALL 4: Die korrekte Verwendung des Operators EXISTS, IN und der Vereinigungen von Tabellen in Ihrer Abfrage ist wichtig, da es sich um Transaktionen handelt, die den Zugriff auf die Daten verlangsamen.

Im Allgemeinen die langsamste Leistung in Query Canda.
IN ist effizient, wenn sich die meisten Filterkriterien in der Unterabfrage befinden.
Exist ist effizient, wenn sich die meisten Filterkriterien in der Hauptabfrage befinden.

Schauen wir uns einige Beispiele an

 Wählen Sie * aus Produkt p where product_id IN (Produkt_ID aus Bestellungen auswählen) 

Es ist optimaler, es folgendermaßen zu schreiben

 Wählen Sie * aus dem Produkt Wobei EXISTS (Wählen Sie * aus Bestellungen wobei orders.product_id = product.product_id) 

Verwenden Sie exist anstelle von DISTINCT
Beispiel sehen, welche Kategorien Bücher zur Verfügung haben

 SELECT DISTINCT categories.id, categories.categories FROM Kategorien, Bücher WO categorias.id = books.idcategoria; 

Es ist optimaler, die Abfrage wie folgt zu schreiben

 SELECT DISTINCT categories.id, categories.categories FROM Kategorien WHERE EXISTS (SELECT 'X' FROM books WHERE books.category = categories.id); 

. Dies sind einige Tipps, mit denen Sie bei der Ausführung von SQL-Abfragen Ressourcen sparen und somit eine Anwendung mit schnelleren Antworten erhalten .

administrator

Leave a Reply

Your email address will not be published. Required fields are marked *