Was ist der Unterschied zwischen Views und Materialized Views in Oracle?
Antworten
Zu viele Anzeigen?Ansichten
Sie werten die Daten in den Tabellen aus, die der View-Definition zugrunde liegen zu dem Zeitpunkt, zu dem die Ansicht abgefragt wird . Es handelt sich um eine logische Ansicht Ihrer Tabellen, in der keine Daten an anderer Stelle gespeichert sind.
Der Vorteil einer Ansicht ist, dass sie immer die neuesten Daten an Sie zurückgeben . Die Der Nachteil einer Ansicht ist, dass ihre Leistung hängt davon ab, wie gut die Select-Anweisung ist, auf der die Ansicht basiert. Wenn die von der Ansicht verwendete Select-Anweisung viele Tabellen verknüpft oder Joins verwendet, die auf nicht indizierten Spalten basieren, kann die Ansicht eine schlechte Leistung aufweisen.
Materialisierte Ansichten
Sie ähneln regulären Ansichten, da sie eine logische Ansicht Ihrer Daten darstellen (basierend auf einer Select-Anweisung), jedoch ist die die zugrunde liegende Abfrageergebnismenge wurde in einer Tabelle gespeichert . Der Vorteil davon ist, dass Sie eine materialisierte Ansicht abfragen können, Sie fragen eine Tabelle ab die auch indexiert sein können.
Da außerdem alle Joins zum Zeitpunkt der Aktualisierung der materialisierten Ansicht aufgelöst wurden, zahlen Sie den Preis für den Join nur einmal (oder so oft, wie Sie Ihre materialisierte Ansicht aktualisieren) und nicht jedes Mal, wenn Sie aus der materialisierten Ansicht auswählen. Darüber hinaus kann Oracle bei aktiviertem Query Rewrite eine Abfrage, die aus der Quelle Ihrer materialisierten Ansicht auswählt, so optimieren, dass sie stattdessen aus Ihrer materialisierten Ansicht liest. In Situationen, in denen Sie materialisierte Ansichten als Formen von Aggregattabellen oder als Kopien häufig ausgeführter Abfragen erstellen, kann dies die Antwortzeit Ihrer Endbenutzeranwendung erheblich beschleunigen. Die Der Nachteil ist jedoch, dass die Daten, die Sie von der materialisierten Ansicht zurückerhalten, nur so aktuell sind wie das letzte Mal, als die materialisierte Ansicht aufgefrischt wurde. .
Materialisierte Ansichten können so eingestellt werden, dass sie manuell oder nach einem festgelegten Zeitplan aktualisiert werden, oder auf der Grundlage, dass die Datenbank eine Änderung der Daten in einer der zugrunde liegenden Tabellen erkennt . Materialisierte Ansichten können schrittweise aktualisiert werden, indem sie mit Protokollen der materialisierten Ansicht kombiniert werden, die als Quellen für die Erfassung von Änderungsdaten dienen auf die zugrunde liegenden Tabellen.
Materialisierte Ansichten werden am häufigsten in Data-Warehousing-/Business-Intelligence-Anwendungen verwendet, bei denen die Abfrage großer Faktentabellen mit Tausenden oder Millionen von Zeilen zu Abfrage-Antwortzeiten führen würde, die eine unbrauchbare Anwendung zur Folge hätten.
Materialisierte Ansichten helfen auch dabei, einen konsistenten Zeitpunkt zu gewährleisten, ähnlich wie bei Snapshot-Isolierung .
Eine Ansicht verwendet eine Abfrage, um Daten aus den zugrunde liegenden Tabellen zu ziehen.
Eine materialisierte Ansicht ist eine Tabelle auf der Festplatte, die die Ergebnismenge einer Abfrage enthält.
Materialisierte Ansichten werden in erster Linie verwendet, um die Anwendungsleistung zu erhöhen, wenn es nicht möglich oder wünschenswert ist, eine Standardansicht mit darauf angewendeten Indizes zu verwenden. Materialisierte Ansichten können regelmäßig aktualisiert werden, entweder durch Trigger oder durch die Verwendung der ON COMMIT REFRESH
Option. Hierfür sind zwar einige zusätzliche Berechtigungen erforderlich, aber das ist nicht weiter kompliziert. ON COMMIT REFRESH
gibt es mindestens seit Oracle 10.
Ansichten sind im Wesentlichen logische, tabellenähnliche Strukturen, die von einer bestimmten Abfrage im laufenden Betrieb aufgefüllt werden. Die Ergebnisse einer Ansichtsabfrage werden nicht auf der Festplatte gespeichert und die Ansicht wird bei jeder Ausführung der Abfrage neu erstellt. Materialisierte Ansichten sind tatsächliche Strukturen, die in der Datenbank gespeichert und auf die Festplatte geschrieben werden. Sie werden auf der Grundlage der bei ihrer Erstellung definierten Parameter aktualisiert.
- See previous answers
- Weitere Antworten anzeigen