Zu den interessanten neuen Errungenschaften des Optimizers in 12c gehören die adaptive plans, die es möglich machen, die endgültige Entscheidung darüber, ob ein Join als Nested Loops oder als Hash Join erfolgen kann bis zum Abschluss der ersten Ausführung aufzuschieben und dann in Abhängigkeit von der ermittelten Cardinality zu treffen (Stichwort: inflection point). Allerdings gibt es eine Reihe von Rahmenbedingungen, die erfüllt sein müssen, damit ein adaptive plan verwendet werden kann. Eine Einschränkung, die mir bisher nicht bekannt war, nennt Christian Antognini in seinem Blog: das Vorliegen von LOBs in einer Query führt zur Deaktivierung des Features und im CBO-Trace erscheint ein Hinweis "AP: Adaptive joins bypassed for table ... due to LOB-producing table under statistics collector". Dazu liefert der Blog-Artikel ein entsprechendes Beispiel.
Keine Kommentare:
Kommentar veröffentlichen