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.
|
|
|