Effiziente SQL-Syntax

Verwenden Sie JOIN (in der FROM -Klausel), um eine Tabelle in eine Abfrage einzubeziehen, anstatt einer Unterabfrage in der WHERE -Klausel. Dieser Tipp gilt auch, wenn Sie die Daten einer Tabelle nur zum Filtern, nicht für den Ergebnissatz benötigen.

Das Verbinden mehrerer Tabellen in der FROM -Klausel bringt eine bessere Leistung als die Verwendung einer Unterabfrage in einer WHERE -Klausel.

Vermeiden Sie SQL-Anweisungen, die Indizes nicht nutzen können. Diese Anweisungen umfassen die Verwendung von Aggregatfunktionen in einer Unterabfrage, eine UNION -Anweisung in einer Unterabfrage oder eine ORDER BY -Klausel in einer UNION -Anweisung.

Ein Index kann die Verarbeitung einer SELECT -Abfrage erheblich beschleunigen. Eine bestimmte SQL-Syntax verhindert jedoch, dass die Datenbank Indizes verwendet, und zwingt sie, die tatsächlichen Daten für Such- oder Sortieroperationen zu verwenden.

Vermeiden Sie ggf. den LIKE -Operator, besonders mit einem Platzhalterzeichen am Anfang wie in LIKE('%XXXX%') .

Da die LIKE -Operation die Verwendung von Platzhaltersuchen unterstützt, ist die Leistung hierbei langsamer als bei Verwendung von Vergleichen auf genaue Übereinstimmung. Insbesondere dann, wenn Sie den Suchstring mit einem Platzhalterzeichen beginnen, kann die Datenbank für die Suche überhaupt keine Indizes verwenden. Stattdessen muss die Datenbank den ganzen Text in jeder Tabellenzeile durchsuchen.

Vermeiden Sie eventuell den IN -Operator. Wenn die möglichen Werte im Voraus bekannt sind, kann die IN -Operation zur schnelleren Ausführung mit AND oder OR geschrieben werden.

Die zweite der beiden folgenden Anweisungen wird schneller ausgeführt. Dies liegt daran, dass sie einfache Gleichheitsausdrücke zusammen mit OR verwendet, anstatt die IN() oder NOT IN() -Anweisungen zu verwenden:

-- Slower 
SELECT lastName, firstName, salary 
FROM main.employees 
WHERE salary IN (2000, 2500) 
     
-- Faster 
SELECT lastName, firstName, salary 
FROM main.employees 
WHERE salary = 2000 
    OR salary = 2500
Ziehen Sie alternative Formen einer SQL-Anweisung in Betracht, um die Leistung zu verbessern.

Wie in Beispielen weiter oben gezeigt, kann auch die Art, wie eine SQL-Anweisung geschrieben ist, Auswirkungen auf die Datenbankleistung haben. Häufig gibt es mehrere Möglichkeiten, mit einer SQL- SELECT -Anweisung einen bestimmten Ergebnissatz abzurufen. In einigen Fällen ist ein bestimmter Ansatz deutlich schneller als ein anderer. Neben den vorstehenden Vorschlägen können Sie in dedizierten Ressourcen für die SQL-Sprache mehr über verschiedene SQL-Anweisungen und ihre Leistung erfahren.