Franck Pachot erläutert im dbi service Blog eine interessante Transformation, die in 12c eingeführt wurde: die Partial Join Evaluation (PJE). Diese Option erlaubt es dem Optimizer, einen Join, der eine distinkte Ergebnismenge liefern soll, intern in einen Semi-Join umzuwandeln und dadurch die Prüfung zu beenden, wenn ein erster Datensatz gefunden wird, der die Bedingung erfüllt. Seine Test-Query:
select distinct deptno,dname from dept join emp using(deptno)
wird in 11g über einen HASH JOIN mit folgendem HASH UNIQUE verarbeitet. In 12c ergibt sich ein HASH JOIN SEMI mit folgendem HASH UNIQUE und die rowsource Statistiken zeigen, dass der Zugriff auf die Probe-Menge tatsächlich beendet wird, wenn der erste Treffer erreicht wurde (was besonders nützlich ist, sofern dieser erste Treffer relativ früh gefunden wird, wofür die spezielle Versuchsanordnung Sorge trägt).
Keine Kommentare:
Kommentar veröffentlichen