it-swarm.com.de

Was ist der Unterschied zwischen Ansichten und materialisierten Ansichten in Oracle?

Was ist der Unterschied zwischen Ansichten und materialisierten Ansichten in Oracle?

326
juan

Materialisierte Ansichten sind festplattenbasiert und werden regelmäßig basierend auf der Abfragedefinition aktualisiert.

Ansichten sind nur virtuell und führen die Abfragedefinition bei jedem Zugriff aus.

340
dacracot

Ansichten

Sie werten die Daten in den Tabellen aus, die der Sichtdefinition zugrunde liegen , wenn die Sicht abgefragt wird . Es ist eine logische Ansicht Ihrer Tabellen, in der nirgendwo anders Daten gespeichert sind.

Der Vorteil einer Ansicht ist, dass sie immer die neuesten Daten an Sie zurückgibt . Der Nachteil einer Ansicht ist, dass ihre Leistung davon abhängt, wie gut eine SELECT-Anweisung ist, auf der die Ansicht basiert. Wenn die von der Ansicht verwendete SELECT-Anweisung viele Tabellen verknüpft oder Verknüpfungen auf der Grundlage nicht indizierter Spalten verwendet, ist die Leistung der Ansicht möglicherweise schlecht.

Materialisierte Ansichten

Sie ähneln regulären Ansichten, da sie eine logische Ansicht Ihrer Daten sind (basierend auf einer select-Anweisung), jedoch wurde die zugrunde liegende Abfrageergebnismenge in einer Tabelle gespeichert . Der Vorteil davon ist, dass Sie beim Abfragen einer materialisierten Ansicht eine Tabelle abfragen, die auch indiziert werden kann.

Da alle Verknüpfungen zum Zeitpunkt der Aktualisierung der materialisierten Ansicht aufgelöst wurden, zahlen Sie den Preis für die Verknüpfung einmal (oder so oft Sie Ihre materialisierte Ansicht aktualisieren) und nicht bei jeder Auswahl aus der materialisierten Ansicht. Darüber hinaus kann Oracle bei aktiviertem Umschreiben von Abfragen eine Abfrage optimieren, die aus der Quelle Ihrer materialisierten Ansicht so ausgewählt wird, dass sie stattdessen aus Ihrer materialisierten Ansicht gelesen wird. In Situationen, in denen Sie materialisierte Ansichten als Formulare für aggregierte Tabellen oder als Kopien häufig ausgeführter Abfragen erstellen, kann dies die Antwortzeit Ihrer Endbenutzeranwendung erheblich verkürzen. Der Nachteil ist jedoch, dass die Daten, die Sie aus der materialisierten Ansicht zurückerhalten, nur so aktuell sind wie das letzte Mal, als die materialisierte Ansicht aktualisiert wurde .


Materialisierte Ansichten können so eingestellt werden, dass sie manuell, nach einem festgelegten Zeitplan oder aktualisiert werden, basierend darauf, dass die Datenbank eine Änderung der Daten aus einer der zugrunde liegenden Tabellen erkennt . Materialisierte Ansichten können inkrementell aktualisiert werden, indem sie mit Protokollen für materialisierte Ansichten kombiniert werden. Diese Protokolle dienen als Quellen für die Datenerfassung für die zugrunde liegenden Tabellen.

Materialisierte Ansichten werden am häufigsten in Data Warehousing-/Business Intelligence-Anwendungen verwendet, bei denen das Abfragen großer Faktentabellen mit Tausenden von Millionen Zeilen zu Antwortzeiten für Abfragen führte, die zu einer unbrauchbaren Anwendung führten.


Materialisierte Ansichten helfen auch dabei, einen konsistenten Zeitpunkt zu gewährleisten, ähnlich wie Snapshot-Isolation .

320
Mike McAllister

Eine Ansicht verwendet eine Abfrage, um Daten aus den zugrunde liegenden Tabellen abzurufen.

Eine materialisierte Ansicht ist eine Tabelle auf dem Datenträger, die die Ergebnismenge einer Abfrage enthält.

Materialisierte Ansichten werden hauptsächlich verwendet, um die Anwendungsleistung zu steigern, wenn die Verwendung einer Standardansicht mit darauf angewendeten Indizes nicht möglich oder wünschenswert ist. Materialisierte Ansichten können regelmäßig entweder über Trigger oder mit der Option ON COMMIT REFRESH aktualisiert werden. Dies erfordert einige zusätzliche Berechtigungen, ist jedoch nicht komplex. ON COMMIT REFRESH ist seit mindestens Oracle 10 installiert.

48

Ansichten sind im Wesentlichen logische tabellenartige Strukturen, die von einer bestimmten Abfrage im laufenden Betrieb aufgefüllt werden. Die Ergebnisse einer Ansichtsabfrage werden nirgendwo auf der Festplatte gespeichert und die Ansicht wird jedes Mal neu erstellt, wenn die Abfrage ausgeführt wird. Materialisierte Ansichten sind tatsächliche Strukturen, die in der Datenbank gespeichert und auf die Festplatte geschrieben werden. Sie werden basierend auf den beim Erstellen definierten Parametern aktualisiert.

18
user12786

Materialisierte Ansicht - Eine Tabelle auf einem Datenträger, die die Ergebnismenge einer Abfrage enthält

Nicht-materielle Ansicht - Eine Abfrage, die Daten aus der zugrunde liegenden Tabelle abruft

17
fn27

View: View ist nur eine benannte Abfrage. Es speichert nichts. Wenn eine Abfrage in der Ansicht vorhanden ist, wird die Abfrage der Ansichtsdefinition ausgeführt. Die tatsächlichen Daten stammen aus der Tabelle.

Materialisierte Ansichten: Speichert Daten physisch und wird regelmäßig aktualisiert. Bei der Abfrage von MV werden Daten von MV ausgegeben.

3
smshafiqulislam

Hinzufügen zu Mike McAllisters ziemlich gründlicher Antwort ...

Materialisierte Ansichten können nur so eingestellt werden, dass sie automatisch über die Datenbank aktualisiert werden und Änderungen erkennen, wenn die Ansichtsabfrage vom Compiler als einfach betrachtet wird. Wenn es als zu komplex angesehen wird, kann es keine wesentlichen internen Trigger zum Nachverfolgen von Änderungen in den Quellentabellen einrichten, um nur die geänderten Zeilen in der mview-Tabelle zu aktualisieren.

Wenn Sie eine materialisierte Ansicht erstellen, werden Sie feststellen, dass Oracle sowohl das mview als auch eine Tabelle mit demselben Namen erstellt, was zu Verwirrung führen kann.

2
Stew S

Ein view ist nichts anderes als eine SQL-Abfrage, nimmt die Ausgabe einer Abfrage und lässt sie wie eine virtuelle Tabelle erscheinen, die keinen Speicherplatz belegt oder Daten enthält

Aber Materialisierte Ansichten sind Schemaobjekte, die die Ergebnisse einer Abfrage in einem separaten Schemaobjekt speichern (d. H. Speicherplatz belegen und Daten enthalten). Dies zeigt an, dass die materialisierte Ansicht eine physisch separate Kopie der Tabellendaten zurückgibt

1
Dlucidone