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

Was sind materialisierte Ansichten?

Sicher.

Eine normale Ansicht ist eine Abfrage, die eine virtuelle Tabelle definiert – Sie haben die Daten nicht wirklich in der Tabelle, Sie erstellen sie spontan durch Ausführen.

Eine materialisierte Ansicht ist eine Ansicht, in der die Abfrage ausgeführt und die Daten in einer tatsächlichen Tabelle gespeichert werden.

Die Daten in der materialisierten Ansicht werden aktualisiert, wenn Sie es wünschen.

Ein paar Anwendungsfälle:

  • Wir haben mehrere Oracle-Instanzen, bei denen wir die Stammdaten auf einer Instanz und eine einigermaßen aktuelle Kopie der Daten auf den anderen Instanzen haben möchten. Wir möchten nicht davon ausgehen, dass die Datenbankverbindungen zwischen ihnen immer betriebsbereit sind. Also richten wir materialisierte Ansichten auf den anderen Instanzen ein, mit Abfragen wie select a,b,c from [email protected] und sagen Sie ihnen, dass sie täglich aktualisieren sollen.

  • Materialisierte Ansichten sind auch beim Umschreiben von Abfragen nützlich. Nehmen wir an, Sie haben eine Faktentabelle in einem Data Warehouse mit jedem Buch, das jemals aus einer Bibliothek ausgeliehen wurde, mit Daten und Ausleihern. Und dass die Mitarbeiter regelmäßig wissen wollen, wie oft ein Buch ausgeliehen wurde. Erstellen Sie dann eine materialisierte Ansicht als select book_id, book_name, count(*) as borrowings from book_trans group by book_id, book_name aus , legen Sie die gewünschte Aktualisierungshäufigkeit fest – normalerweise die Aktualisierungshäufigkeit für das Warehouse selbst. Wenn nun jemand eine solche Abfrage für ein bestimmtes Buch gegen book_trans durchführt -Tabelle ist die Abfrageumschreibungsfunktion in Oracle intelligent genug, um die materialisierte Ansicht zu betrachten, anstatt durch die Millionen von Zeilen in book_trans zu gehen .

Normalerweise erstellen Sie materialisierte Ansichten aus Leistungs- und Stabilitätsgründen – unzuverlässige Netzwerke oder lange Abfragen außerhalb der Geschäftszeiten.