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

Oracle – Materialized View ist während der vollständigen Aktualisierung weiterhin verfügbar. Wie funktioniert das?

Es gibt zwei verschiedene Möglichkeiten, wie eine vollständige Aktualisierung erfolgen kann – eine atomare Aktualisierung oder eine nicht atomare Aktualisierung. Eine atomare Aktualisierung gibt einfach ein DELETE aus, um alle Zeilen in der materialisierten Ansicht zu löschen, und führt dann ein INSERT aus, um die neuen Daten einzufügen. Dies geschieht alles innerhalb einer einzigen Transaktion, sodass die standardmäßige Multiversions-Lesekonsistenzarchitektur von Oracle es Oracle ermöglicht, anderen Sitzungen die alten Daten anzuzeigen, bis die Aktualisierung abgeschlossen ist. Bei einer nicht atomaren Aktualisierung führt Oracle ein TRUNCATE für die materialisierte Ansicht und dann ein Direktpfad-INSERT durch, um die neuen Daten einzufügen. Dies ist wesentlich effizienter, aber da TRUNCATE DDL ist, bedeutet dies, dass die alten Daten während der Aktualisierung für andere Sitzungen nicht sichtbar sind.