Donnerstag, August 29, 2013

Fast Refresh Internals für Materialized Views (aggregate-only)

Alberto Dell'Era steigt mal wieder in die Tiefen der Algorithmen, die beim MV Fast Refresh Verwendung finden. Diesmal hat er gleich eine ganze Artikelserie daraus gemacht:
  • Fast refresh of aggregate-only materialized views – introduction: erläutert die Struktur des Materialized View Log (als Sequenz von old/new values oder delete/insert Einträgen) und zeigt, wie redundante Einträge aus der Informationsfolge gefiltert werden (was man anscheinend vermeiden kann, wenn man die Sequenz-Angabe aus dem Log entfernt!). Die refresh engine prüft anschließend, welchem Typ die im Log vorliegenden Informationen entsprechen (new-only(insert-only), old-only(delete-only) oder mixed), und wählt einen dazu passenden Refresh Algorithmus aus (und meldet gegebenenfalls "ORA-32314 REFRESH FAST unsupported after deletes/updates" for insert-only MVs). Der Artikel enthält noch diverse zusätzliche Details, deren Nacherzählung ich mir an dieser Stelle spare.
  • Fast refresh of aggregate-only materialized views with SUM – algorithm: erläutert das Vorgehen beim Fast-Refresh von MVs mit der Funktion SUM. Der Artikel untersucht die unterschiedlichen Aktualisierungsverfahren für die unterschiedlichen DML-Pattern (nur Insert, nur Delete, gemischt) und diskutiert Optimierungsmöglichkeiten (die aber eher beschränkt zu sein scheinen: man kann einen im Prozess mehrfach relevanten Index auf der MV erzeugen; grundsätzlich ist der Fast Refresh nur bei moderatem Änderungsvolumen sinnvoll; erfreulich ist, dass kein Zugriff auf die Master-Tabelle erforderlich ist, sondern alle relevanten Informationen aus der MV und dem MV Log stammen).
  • Fast refresh of aggregate-only materialized views with MAX – algorithm: erläutert das Vorgehen beim Fast-Refresh von MVs mit der Funktion MAX. Der Fall ähnelt dem Refresh für die SUM-Funktion, allerdings ist im Fall gemischter DML-Operationen (Insert + Delete) ein Zugriff auf die Master-Tabelle erforderlich, der durch einen Index unterstützt werden sollte.
Meine Zusammenfassung taugt in diesem Fall nicht besonders viel und soll tatsächlich nur als Index dienen - sprich als Erinnerung daran, dass man beim Herrn Dell'Era Details zu den Mechanismen des Fast Refresh finden kann, die man sich bei Bedarf noch mal genauer anschauen müsste.

Keine Kommentare:

Kommentar veröffentlichen

Kommentar veröffentlichen