Ein View mit einer UNION-Abfrage wird verwendet:
SELECT 1, …
…
UNION ALL
SELECT 2, …
…
Die 1. Ergebnisspalte ist eine Konstante, d.h. der Wert für die Spalte steht schon vor der Ausführung des SQL fest. Nun führe ich eine Abfrage auf den View aus und schränke in der WHERE-Clause den Wertebereich auf 1 ein.
Eigentlich erwarte ich, dass die Datenbank erkennt, dass der 2. SELECT niemals ein passenden Ergebnis liefern kann. Tatsächlich jedoch wird die 2. Abfrage von der DB mit ausgeführt. Das Ergebnis ist korrekt, jedoch ist die Ausführungszeit deutlich langsamer.
Ich verwende Oracle 9/10. Gibt es eine Möglichkeit dem Oracle die nötige Intelligenz z.B. durch HINTS beizubringen?
Gruß Markus