Dienstag, Februar 13, 2018

Ergänzungen zu coalesce und NVL

Vor längerer Zeit hatte ich hier gelegentlich auf Artikel verwiesen, die sich mit dem unterschiedlichen Verhalten von NVL und coalesce beschäftigten und einerseits auf die short-circuit evaluation mit coalesce und andererseits auf deren Ausklammerung im Fall von Sequencen hinwiesen. Jetzt haben die Herren Lewis und McDonald dazu ergänzende Beobachtungen geliefert.
  • Jonathan Lewis weist darauf hin, dass coalesce beim costing schlechter abschneidet als NVL, weil es mit dem Standardwert von 1% für Gleichheit operiert, der für viele Funktionsaufrufe verwendet wird. NVL hingegen kann vorhandene Histogramme sinnvoll einsetzen.
  • Connor McDonald zeigt eine nette Optimierung für Queries mit Bindevariablen der Form coalesce bzw. NVL(:search_criteria, column) = column. In diesem Fall kann NVL die beiden Fälle in zwei Varianten aufsplitten, während coalesce immer einen Full Table Scan einsetzt.
Wie üblich hängt die Auswahl der passenden Funktion also von den Umständen ab.

Donnerstag, Februar 08, 2018

Artikel zu redo internals von Frits Hoogland

Um sie leichter wiederzufinden, verlinke ich hier eine Liste der Artikel, die Frits Hoogland in seiner Serie "A look into Oracle redo" veröffentlicht. Vermutlich werde ich hier wenig Inhaltliches ergänzen, da sich diese Artikel nur schwer exzerpieren lassen: sie enthalten einfach zu viele interessante technische Details:
Hoffentlich liefere ich gelegentlich ein paar Sätze zu den unkommentierten Artikeln nach, aber leider schreibt der Herr Hogland deutlich schneller, als ich exzerpieren kann...

Donnerstag, Februar 01, 2018

Anzeigeoptionen für dbms_xplan

Noch ein Verweis auf einen Artikel von Franck Pachot, in dem er Dokumentationslücken zu Oracle schliesst. In diesem Fall erläutert er die Format-Optionen zu dbms_xplan, die ich mit einer gewissen Regelmäßigkeit nachschlagen muss - was durch diesen Link möglicherweise vereinfacht wird.