2行を返すはずのクエリがあります。ただし、48 行が返されます。結合されているテーブルの 1 つが存在しないように動作しています。しかし、クエリの from または where 部分を変更せずに、そのテーブルの列を select 句に追加すると、2 行が返されます。
選択に「m.*」がない場合の「Explain plan」の内容は次のとおりです。
これは、選択に m.* を追加した後のものです。
なぜこのように振る舞うべきなのか、誰か説明できますか?
更新: この問題は 1 つのシステムでのみ発生し、別のシステムでは発生しませんでした。DBA は、問題があるのは optimizer_features_enable を 10.2.0.5 に設定して実行しており、問題が発生していないのは optimizer_features_enable を 10.2.0.4 に設定して実行していることを確認しました。残念ながら、顧客サイトは 10.2.0.5 を実行しています。