Jonathan Lewis zeigt, dass der Oracle Optimizer offenbar eine erstaunlich klare Vorstellung von der Wirkung von Prädikaten mit der NVL-Funktion besitzt und dabei die NULL-Werte der Spalte in seiner Kalkulation akkurat einbezieht (und das bereits seit Version 8i). Leider ist diese Einsicht des CBO offenbar auf NVL beschränkt und betrifft nicht COALESCE oder CASE, die stattdessen mit der Standard-Selektivität von 0.01 (also 1%) für Funktionen operieren. Besonders traurig ist das, weil diese beiden NVL-Alternativen im Gegensatz zu NVL eine short-circuit Optimierung verwenden, die dafür sorgt, dass überflüssige Auswertungen vermieden werden können. Schade: ich dachte, das wäre mal ein Fall, bei dem man eine eindeutige Antwort auf die Frage nach der am besten geeigneten Verfahrensweise geben könnte ...
Keine Kommentare:
Kommentar veröffentlichen