Ultra Light では、データベース・ページから直接情報にアクセスする方が効率的な場合、インデックス・スキャンの代わりにダイレクト・ページ・スキャンを使用します。ダイレクト・ページ・スキャンが使用されるのは、オプティマイザが次の条件を確認した場合のみです。
結果を効率的に返すことができる既存のインデックスがない。
更新の実行にクエリが使用されない。たとえば、文が FOR READ ONLY (FOR 句が指定されていない場合のデフォルト設定) であると宣言されている場合、またはデータが更新されないことが明らかなようにクエリが記述されている場合です。
Ultra Light では、ローが格納されているページからローを直接読み込むので、クエリ結果は順序に関係なく返されます。その後のクエリ結果の順序は予想できません。ローの順序を予測可能で決定的にするには、ORDER BY 句を使用して一貫性のある順序で結果を取得する必要があります。一方、順序が重要ではない場合は、ORDER BY 句を省略することで、クエリのパフォーマンスを向上させることができます。
アプリケーションのプログラムにテーブル API を使用している場合、ダイレクト・ページ・スキャンは使用できません。
Ultra Light がいつページを直接スキャンするか、または結果を返すのにどのインデックスが使用されたかを確認できます。オプティマイザで使用するアクセス方法の決定を参照してください。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |