Anfang des Inhaltsbereichs

Mit OR verknüpfte Suchbedingungen 

Bei SQL-Anweisungen, die mit OR verknüpfte Suchbedingungen enthalten, analysiert der Optimierer zunächst einzeln jede Suchbedingung.

Wenn eine Gleichheitsbedingung auf Schlüsselspalten gefunden wird, werden die weiteren mit OR verknüpften Suchbedingungen ignoriert.

b1 AND b2 AND (b3 OR b4 AND b5)

Die Ausdrücke b1, b2 und (b3 OR b4 AND b5) werden zunächst einzeln analysiert. Wird bei b1 oder b2 eine Gleichheitsbedingung auf Schlüsselspalten gefunden, so wird (b3 OR b4 AND b5) bei der Auswahl der Suchstrategie nicht berücksichtigt, da der Suchbereich nicht sinnvoll weiter eingegrenzt werden kann.

Wenn keine Gleichheitsbedingung für Schlüsselspalten gefunden wird, werden die bis dahin nicht betrachteten, mit OR verknüpften Suchbedingungen weiter analysiert. Dabei geht der Optimierer folgendermaßen vor:

..

       1.      Umformen in die disjunktive Normalform

b1 AND b2 AND (b3 OR b4 AND b5)

ergibt in der disjunktiven Normalform

(b1 AND b2 AND b3) OR (b1 AND b2 AND b4 AND b5)

       2.      Analyse des neuen Ausdrucks
Die neu gebildeten Klammerausdrücke werden separat analysiert.

       3.      Kostenermittlung
Die Kosten der verschiedenen Suchstrategien für die Klammerausdrücke der disjunktiven Normalform werden summiert. Wenn diese Summe kleiner als die anfangs ermittelten Kosten für die Suchstrategie ohne Betrachtung der mit OR verknüpften Suchbedingungen ist, werden diese verschiedenen Suchstrategien verwendet.

Wenn die Summe der Kosten von (b1 AND b2 AND b3) und (b1 AND b2 AND b4 AND b5) kleiner ist als die Kosten für die Suchstrategie für b1 und b2, dann werden Strategien für (b1 AND b2 AND b3) und (b1 AND b2 AND b4 AND b5) angewendet.

Ende des Inhaltsbereichs