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 の使用法 » クエリ処理 » クエリの最適化と実行 » オプティマイザの仕組み » オプティマイザの基本となる仮定条件

 

インデックスを使用して述部を満たすことができる

通常、SQL Anywhere はインデックスを使用して探索条件を評価できます。インデックスを使用することで、オプティマイザはデータへのアクセスをスピードアップし、ベース・テーブルから読み込んで処理する情報量を減らします。たとえば、クエリに WHERE column-name=value という探索条件があり、カラムにインデックスが存在する場合、インデックス・スキャンを使って、探索条件を満たすテーブルのローだけを読み込むことができます。

テーブルをジョインする場合にインデックスがあれば、パフォーマンスを大幅に向上させることもできます。

オプティマイザは、可能であれば常に、インデックス専用取得でクエリを処理しようとします。インデックス専用取得では、データベース・サーバでインデックスのデータだけを使用してクエリが処理されるため、テーブル内のローにアクセスする必要がありません。

オプティマイザが使用できるインデックスがない場合は、代わりに逐次テーブル・スキャンが実行されますが、これにはコストがかかります。

オプティマイザは、最高のパフォーマンスが得られるインデックスを判断し、それを使用するように自動的に選択します。ただし、クエリでインデックス・ヒントを使用して、オプティマイザが使用するインデックスを指定することもできます。指定したインデックスが 1 つでも使用できなかった場合はエラーが返されます。インデックス・ヒントによってパフォーマンスが低下する場合があるため、経験のあるユーザだけが実行するよう注意してください。FROM 句を参照してください。

インデックス・コンサルタントを使用して、データベースにインデックスを追加する必要があるかどうかを判別できます。インデックス・コンサルタントを参照してください。

参照