変更内容
SQL文のWHERE句にブール演算子“OR”を指定した場合、TIDユニオンマージのアクセスプランに加えて、インデックス検索、またはインデックス検索と表データ取得のアクセスプランから処理手順にかかるコストを評価して、効率の良い処理手順を決めるようになります。
非互換
SQL文のWHERE句にブール演算子“OR”を指定した場合、TIDユニオンマージのアクセスプランを作成します。
SQL文のWHERE句にブール演算子“OR”を指定した場合、TIDユニオンマージのアクセスプランに加えて、インデックス検索、またはインデックス検索と表データ取得のアクセスプランから処理手順にかかるコストを評価して、効率の良い処理手順を決めます。
ほとんどの場合、インデックス検索の方がSQL文のレスポンスが良いのですが、データの分布によっては、表に対するI/O効率の高いTIDユニオンマージの方が良い場合もあります。どちらのアクセスプランを選択するかは、Symfoware/RDBが自動的に決めますが、最適化情報を設定しない運用の場合はこの選択を誤ってしまい、V11.0.0以降、まれにSQL文のレスポンスが悪くなることがあります。
対処方法
V10.1.0以前と同じアクセスプランにしたい場合は、動作環境ファイルのパラメタCHOOSE_TID_UNIONにYESを指定してください。