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

SQL Anywhere 12.0.0 (Deutsch) » SQL Anywhere Server - SQL-Benutzerhandbuch » Abfragen optimieren und ausführen » Algorithmen zur Abfrageausführung » Typen von Algorithmen » Sonstige Algorithmen

 

InList-Algorithmus (IN)

InList wird in Fällen verwendet, bei denen ein IN-Listenprädikat unter Verwendung eines Indexes erfüllt werden kann. In der folgenden Abfrage erkennt der Optimierer beispielsweise, dass er auf die Tabelle "Employees" mit ihrem Primärschlüsselindex zugreifen kann.

SELECT *
FROM Employees
WHERE EmployeeID IN ( 102, 105, 129 );

Um dies zu erreichen, wird ein Join mit einer speziellen IN-Listentabelle auf der linken Seite erstellt. Aus der IN-Listentabelle werden Zeilen abgerufen und zur Untersuchung der Tabelle "Employees" verwendet.

Um InList zu verwenden, muss jedes Element im IN-Listenprädikat eine Konstante oder ein Wert sein, der während der Optimierungszeit in einen Konstantenwert berechnet werden kann (wie CURRENT DATE, CURRENT TIMESTAMP und nicht-deterministische System- bzw. benutzerdefinierte Funktionen), oder ein Wert, der eine Konstante innerhalb einer Ausführung eines Abfrageblocks ist (äußere Referenzen). Beispiel: Die folgende Abfrage ist für InList qualifiziert.

SELECT *, ( 
   SELECT FIRST GivenName 
    FROM Employees e 
    WHERE e.DepartmentID IN ( 500, d.DepartmentID ) 
    ORDER BY e.DepartmentID )
FROM Departments d;

Mehreren IN-Listenprädikaten kann mit demselben Index entsprochen werden.