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