Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.1 » SQL Anywhere サーバー SQL の使用法 » データの問い合わせと修正 » クエリ

 

高度:クエリ最適化

最適化は、クエリの適切なアクセスプランを生成するのに重要な処理です。クエリが解析されると、「クエリオプティマイザー」 (または簡略して、オプティマイザー) はクエリを分析し、できるだけ少ないリソースを使用して結果を計算するアクセスプランを決定します。最適化が実行直前に開始されます。アプリケーションでカーソルを使用している場合は、カーソルを開いたときに最適化が開始されます。

他の多くの商用データベースシステムとは異なり、SQL Anywhere では通常、各文を実行する直前に最適化を行います。SQL Anywhere は各文の最適化をそのつど実行するため、オプティマイザーはホスト変数とストアドプロシージャー変数の値にアクセスできます。これにより、より良い選択性推定分析を実行できます。また、最適化をそのつど実行するため、オプティマイザーは前のクエリ実行後に保存された統計を基に、選択を調整できます。

SQL Anywhere は操作を効率化するために、セマンティック上は同等で、構文上は異なる形式にユーザーのクエリを書き換えます。SQL Anywhere は、さまざまな書き換え操作を実行します。アクセスプランを読めば、それが元の文のリテラルな解釈と一致していないことがよくあります。たとえば、SQL 文の効率を高めるために、オプティマイザーはジョインを使ってサブクエリを可能なかぎり書き換えようとします。


オプティマイザーの仕組み
クエリ処理中に実行される最適化