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

SAP Sybase SQL Anywhere 16.0 » SQL Anywhere サーバ SQL の使用法 » クエリとデータ修正 » クエリ » 高度:クエリ最適化

 

クエリ処理中に実行される最適化

クエリ書き換えフェーズでは、より効率性と便宜性に優れたクエリの表現方法を検討するために、SQL Anywhere はセマンティック変形を実行します。クエリはセマンティック上等しいクエリに書き換えられる場合があるため、このプランは、元のクエリとはかなり異なる場合があります。一般的な操作は次のとおりです。

  • 不要な DISTINCT 条件の排除

  • サブクエリのネスト解除

  • UNION または GROUP 化されたビューや派生テーブルでの述部のプッシュダウンの実行

  • OR 述部と IN リスト述部の最適化

  • LIKE 述部の最適化

  • 外部ジョインの内部ジョインへの変換

  • 外部ジョインと内部ジョインの削除

  • 述部の推定による利用可能な条件の発見

  • 大文字と小文字の不要な変換の排除

  • サブクエリを EXISTS 述部として書き換え

  • 検索引数可能な IN 述部の推定 (AND 述部に変換できない OR 述部からの部分インデックススキャンに使用可能)

注意

カーソルが更新可能な場合、メインクエリブロックではクエリ書き換え最適化を実行できないことがあります。カーソルを読み込み専用として宣言すると、最適化を利用できます。

クエリ書き換えフェーズで実行される書き換えの最適化のいくつかは、REWRITE 関数で返される結果で観察できます。

 参照