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

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - SQL の使用法 » クエリ処理 » クエリの最適化と実行 » クエリ実行アルゴリズム » アルゴリズムの種類 » その他のアルゴリズム

 

InList アルゴリズム (IN)

InList は、インデックスを使用して IN リスト述部を満たすことができる場合に使用されます。たとえば、次のクエリの場合、オプティマイザはプライマリ・キー・インデックスを使用して Employees テーブルにアクセスできることを認識します。

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

これを行うために、左側に特別な IN リスト・テーブルを指定したジョインが構築されます。ローは IN リスト・テーブルからフェッチされ、Employees テーブルの調査に使用されます。

InList を使用するには、IN リスト述部内の各要素が定数であるか、または最適化時に定数と評価される値 (CURRENT DATE、CURRENT TIMESTAMP、非決定的システム関数、ユーザ定義関数) や、クエリ・ブロック 1 回の実行中に定数である値 (外部参照) であることが必要です。たとえば、次のクエリでは InList を使用できます。

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

同じインデックスを使用して、複数の IN リスト述部の条件を満たすことができます。