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.
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |