Forum
Hallo Alexander,
bei einem EXISTS-Prädikat wird die Suche nach dem ersten Treffer beendet.
Wenn Du nicht vorherbestimmen kannst, wie häufig der 1. Block Treffer zeigt und man sich dann den 2. Block eigentlich sparen könnte, wird die Bestimmung einer Ersparnis durch Aufteilung in 2 Blocks schwierig. Denn der 2. Block (quasi das OR-Prädikat) verschlingt ja erneut I/O-Kosten.
Wie gesagt: Wenn man die Ersparnis nicht absehen kann, würde ich das SQL Statement nicht teilen und die Sache dem Optimizer überlassen.
Gruß
Gernot
PS: Bei einer gleichen Trefferwahrscheinlichkeit und gleichen Kosten für beide Blöcke, wobei das OR-Prädikat in einem zusammengesetzten Statement (wg. ersparter I/O) Kosten spart, könnte sich folgendes ergeben: (siehe Bild)