クエリ書き換えフェーズでは、より効率性と便宜性に優れたクエリの表現方法を検討するために、SQL Anywhere はセマンティック変形を実行します。クエリはセマンティック上等しいクエリに書き換えられる場合があるため、このプランは、元のクエリとはかなり異なる場合があります。一般的な操作は次のとおりです。
不要な DISTINCT 条件の排除
サブクエリのネスト解除
UNION または GROUP 化されたビューや派生テーブルでの述部のプッシュダウンの実行
OR 述部と IN リスト述部の最適化
LIKE 述部の最適化
外部ジョインの内部ジョインへの変換
外部ジョインと内部ジョインの削除
述部の推定による利用可能な条件の発見
大文字と小文字の不要な変換の排除
サブクエリを EXISTS 述部として書き換え
検索引数可能な IN 述部の推定 (AND 述部に変換できない OR 述部からの部分インデックススキャンに使用可能)
カーソルが更新可能な場合、メインクエリブロックではクエリ書き換え最適化を実行できないことがあります。カーソルを読み込み専用として宣言すると、最適化を利用できます。
クエリ書き換えフェーズで実行される書き換えの最適化のいくつかは、REWRITE 関数で返される結果で観察できます。
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2013, SAP AG or an SAP affiliate company. - SAP Sybase SQL Anywhere 16.0 |