クエリ処理の最適化の対象を、最初のローを迅速に返すこと、または完全な結果セットを返すコストを最小限に抑えることのどちらかに指定します。
First-row または All-rows
All-rows
optimization_goal オプションは、SQL Anywhere において SQL データ操作言語 (DML) 文を応答時間に対して最適化するか、リソースの総消費量に対して最適化するかを制御します。
このオプションを All-rows (デフォルト) に設定すると、SQL Anywhere はクエリを最適化して、予測される合計検索時間が最短になるアクセス・プランを選択します。PowerBuilder DataWindow アプリケーションなど、処理の前に結果セット全体が必要になるアプリケーションでは、optimization_goal を All-rows に設定するのが適切です。All-rows の設定では、カーソルが開いたときに結果全体が実体化されるため、insensitive (ODBC の静的) カーソルにも適しています。また、結果セットのスクロールを目的とするスクロール (ODBC キーセット駆動型) カーソルにも適しています。
このオプションを First-row に設定すると、SQL Anywhere は、クエリの結果の最初のローをフェッチするまでの時間を短縮するアクセス・プランを選択します。この場合、検索にかかる合計時間は長くなることがあります。また、通常 SQL Anywhere オプティマイザでは、可能であれば結果の実体化を必要とするアクセス・プランは使用しないで、最初のローを返すまでの時間を短縮します。この設定では、オプティマイザは、明示的なソートの操作を必要とするアクセス・プランではなく、クエリの ORDER BY 句を満たすインデックスを使用するアクセス・プランを採用します。
クエリの FROM 句の FASTFIRSTROW テーブル・ヒントを使用すると、特定のクエリの最適化ゴールを First-row に設定できます。この場合、optimization_goal の設定を変更する必要はありません。
FASTFIRSTROW テーブル・ヒントの使用の詳細については、FROM 句を参照してください。
INSERT、UPDATE、DELETE、SELECT、UNION、EXCEPT、INTERSECT の各文に OPTION 句を含めることによって、各文で指定したオプション設定をこれらのオプションに対するテンポラリ設定やパブリック設定よりも優先させることができます。次の項を参照してください。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |