Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Oracle – Was passiert, wenn eine „REFRESH FORCE ON DEMAND“-Ansicht mit DBMS_MVIEW.REFRESH aktualisiert wird

Standardmäßig (und dieser Standard ändert sich in verschiedenen Versionen von Oracle) führt dies eine vollständige, atomare Aktualisierung der materialisierten Ansicht durch. Das bedeutet, dass die Daten in der materialisierten Ansicht gelöscht werden, die zugrunde liegende Abfrage erneut ausgeführt wird und die Ergebnisse in die materialisierte Ansicht geladen werden. Sie können die Aktualisierung effizienter gestalten, indem Sie den Wert FALSE für ATOMIC_REFRESH übergeben Parameter, also

dbms_mview.refresh( 'TESTRESULT', atomic_refresh => false );

Dadurch wird die materialisierte Ansicht abgeschnitten, die Abfrage erneut ausgeführt und die Ergebnisse über eine direkte Pfadeinfügung in die materialisierte Ansicht eingefügt. Das ist effizienter als eine atomare Aktualisierung, aber die materialisierte Ansicht ist während der Aktualisierung leer.