Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.1 (Deutsch) » SQL Anywhere Server - SQL-Benutzerhandbuch » Abfrage und Änderung von Daten » Abfragen

 

Abfrageprädikate

Ein Prädikat ist ein bedingter Ausdruck, aus dem, zusammen mit den logischen Operatoren AND und OR, die Reihe von Bedingungen in einer WHERE-, HAVING- oder ON-Klausel besteht. In SQL wird ein Prädikat, das als UNKNOWN aufgelöst wird, als FALSE interpretiert.

Ein Prädikat, das einen Index verwenden kann, um Zeilen aus einer Tabelle abzurufen, wird sargable (als Suchargument nutzbar) genannt. Diese Bezeichnung ist abgeleitet aus search argument-able (suchargumentfähig). Prädikate, die Vergleiche einer Spalte mit Konstanten, anderen Spalten oder Ausdrücken beinhalten, können "sargable" sein.

Das Prädikat in der folgenden Anweisung ist "sargable". SQL Anywhere kann es unter Verwendung des primären Indexes der Employees-Tabelle effizient auswerten.

SELECT *
FROM Employees
WHERE Employees.EmployeeID = 102;

Im besten Zugriffsplan erscheint dies folgendermaßen: Employees<Employees>.

Im Gegensatz dazu ist das folgende Prädikat nicht sargable. Auch wenn die EmployeeID-Spalte im primären Index indiziert ist, beschleunigt die Verwendung dieses Indexes die Berechnung nicht, weil das Ergebnis alle Zeilen, oder alle bis auf eine Zeile, enthält.

SELECT *
FROM Employees
where Employees.EmployeeID <> 102;

Im besten Zugriffsplan erscheint dies folgendermaßen: Employees<seq>.

Gleichermaßen kann kein Index eine Suche unterstützen, bei der alle Mitarbeiter gesucht werden, deren Vorname mit k endet. Auch hier besteht die einzige Möglichkeit zum Berechnen dieses Ergebnisses darin, jede Zeile einzeln zu prüfen.

 Funktionen
 Beispiele
 Siehe auch