433 Stimmen

Was ist der Unterschied zwischen Views und Materialized Views in Oracle?

Was ist der Unterschied zwischen Views und Materialized Views in Oracle?

446voto

dacracot Punkte 21242

Materialisierte Ansichten sind plattenbasiert und werden in regelmäßigen Abständen auf der Grundlage der Abfragedefinition aktualisiert.

Ansichten sind nur virtuell und führen die Abfragedefinition jedes Mal aus, wenn auf sie zugegriffen wird.

394voto

Mike McAllister Punkte 1439

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 .

66voto

Jeremiah Peschka Punkte 8296

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.

29voto

fn27 Punkte 759

Materialisierte Ansicht - eine Tabelle auf einer Festplatte, die die Ergebnismenge einer Abfrage enthält

Nicht-materielle Sichtweise - eine Abfrage, die Daten aus der zugrunde liegenden Tabelle abruft

26voto

user12786 Punkte 732

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.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X