変更内容
以下のいずれかの導出表を指定したSQL文のWHERE句に、導出表を絞り込む探索条件を指定した場合、その探索条件を導出表のWHERE句に移動することにより、導出表の結果のワークテーブルを作る前に探索条件を判定できるようになります。
導出表にGROUP BY句、HAVING句または集合関数を指定している場合。
導出表の選択リストに列指定以外を指定している場合。
これにより、導出表の結果のワークテーブルのサイズが小さくなりSQL文のレスポンスが向上します。
非互換
導出表を実行してワークテーブルを作成した後に、そのワークテーブルを読み込みながら探索条件を判定します。
導出表を絞り込む探索条件を指定した場合、その探索条件を導出表のWHERE句に移動して、導出表用のワークテーブルを作る前に探索条件を判定します。
ほとんどの場合、検索性能が向上しますが、最適化情報を設定しない運用の場合、移動した探索条件により最適でないアクセスプランが作成され、バージョンアップを契機に、まれにSQL文のレスポンスが悪くなることがあります。
対処方法
以下の1)、2)のいずれかを行ってください。
すべてのアプリケーションを6.x系以前と同じ動作としたい場合
システム用の動作環境ファイルのパラメタGROUP_COL_COND_MOVEにNOを指定してください。
6.x系以前と7.x系以降のアプリケーションが混在していて、6.x系以前のアプリケーションのみ、以前と同じ動作としたい場合
6.x系以前のアプリケーションが使用するクライアント用の動作環境ファイルのパラメタGROUP_COL_COND_MOVEにNOを指定してください。
SQL文にASSIST指定のLEADING_TABLEまたはUSE_INDEXを指定して、ジョイン順またはインデックスを固定してください。