最適化は、クエリの適切なアクセスプランを生成するのに重要な処理です。クエリが解析されると、「クエリオプティマイザー」 (または簡略して、オプティマイザー) はクエリを分析し、できるだけ少ないリソースを使用して結果を計算するアクセスプランを決定します。最適化が実行直前に開始されます。アプリケーションでカーソルを使用している場合は、カーソルを開いたときに最適化が開始されます。
他の多くの商用データベースシステムとは異なり、SQL Anywhere では通常、各文を実行する直前に最適化を行います。SQL Anywhere は各文の最適化をそのつど実行するため、オプティマイザーはホスト変数とストアドプロシージャー変数の値にアクセスできます。これにより、より良い選択性推定分析を実行できます。また、最適化をそのつど実行するため、オプティマイザーは前のクエリ実行後に保存された統計を基に、選択を調整できます。
SQL Anywhere は操作を効率化するために、セマンティック上は同等で、構文上は異なる形式にユーザーのクエリを書き換えます。SQL Anywhere は、さまざまな書き換え操作を実行します。アクセスプランを読めば、それが元の文のリテラルな解釈と一致していないことがよくあります。たとえば、SQL 文の効率を高めるために、オプティマイザーはジョインを使ってサブクエリを可能なかぎり書き換えようとします。
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |