QUESTION(SQ0104006)
インデックスを設定している項目で検索を実行しているのですが、逐次スキャン(全件サーチ)してしまいます
ANSWER
これはオプチマイザによるアクセス方法(検索方法)選択機能によるものです。Adaptive Server Anywhere オプティマイザは統計情報をもとに各文の実行に最適な方式を判別します。オプチマイザは、選択性が20%未満の場合にインデックスを使用し、20%以上の場合は逐次スキャンします。Adaptive Server Anywhere は、それらの統計を自動的に収集、更新します。
統計が不正確になったり、関連した統計が得られないことがあります。このような状況がもっとも発生しやすいのは、大量のデータが追加、更新、または削除された後でクエリがほとんど実行されていない場合です。そのような場合、明示的な選択性推定を指定することでパフォーマンスを改善できることがあります。
予測値はパーセントで表します。この値は、正の整数または小数です。 進行ベースで使用される文には、できる限り明示的な推定を指定しないようにしてください。データが変更されると、明示的な推定が不正確になり、オプティマイザが誤って不適切なプランを選択することがあります。
(例)次のクエリでは、ローの 0.5 % が条件を満たす予測値をベースに検索を実行します。
SELECT * FROM customer c, sales_order o WHERE (c.id = o.cust_id, 0.5)
|