Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
クエリ処理の最適化の対象を、最初のローを迅速に返すこと、または完全な結果セットを返すコストを最小限に抑えることのどちらかに指定します。
First-row または All-rows
All-rows
optimization_goal オプションは、SQL Anywhere において SQL データ操作言語 (DML) 文を応答時間に対して最適化するか、リソースの総消費量に対して最適化するかを制御します。
このオプションを All-rows (デフォルト) に設定すると、SQL Anywhere はクエリを最適化して、予測される合計検索時間が最短になるアクセスプランを選択します。Sybase 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 句を含めることによって、各文で指定したオプション設定をこれらのオプションに対するテンポラリ設定やパブリック設定よりも優先させることができます。