Performance von Cloud-Links mit Materialized Views optimieren

Materialized Views verbessern die Performance von Cloud-Links, indem Remote-Daten lokal in der Consumer-Datenbank gecacht und inkrementell aktualisiert werden, anstatt jedes Mal alles über das Netzwerk erneut zu lesen.

Materialized Views werden häufig zur Verbesserung der Performance verwendet, insbesondere wenn Daten in einer lokalen Datenbank gespeichert werden, die über einen Datenbanklink aus Remote-Tabellen oder Views bezogen wird. Ebenso werden Materialized Views häufig anstelle von Views verwendet, wenn umfangreiche Berechnungen oder Zusammenfassungen vorliegen, insbesondere bei großen Datasets. Materialized Views werden in bestimmten Intervallen aktualisiert. Das bedeutet, dass die Daten nicht immer auf dem neuesten Stand sind. Abfragen zu diesen Materialized Views sind in diesen Anwendungsfällen jedoch deutlich schneller.

Materialized Views aktualisieren

Die Datenbank verwaltet Daten in Materialized Views, indem sie diese nach Änderungen an den Basistabellen aktualisiert. Wenn Sie eine Materialized View aktualisieren, werden automatisch alle zugehörigen Indizes aktualisiert. Bei einer vollständigen Aktualisierung ist ein temporärer Sortierbereich erforderlich, um alle Indizes während der Aktualisierung neu zu erstellen.

Aktualisierungstypen für Materialized Views:

Im Folgenden werden inkrementelle Aktualisierungsmethoden für Materialized Views aufgeführt, die Cloud-Links verwenden:

  • Logbasierte Aktualisierung

Verschiedene Aktualisierungsmethoden finden Sie im Kapitel Materialized Views aktualisieren.

Hinweis

Aktualisierung des Partitionsänderungstrackings (PCT) und Aktualisierung des logischen Partitionsänderungstrackings (LPCT) werden für Materialized Views, die Cloud-Links verwenden, nicht unterstützt.

Inkrementelle Aktualisierung von Materialized Views über Cloud-Links

Die inkrementelle Aktualisierung wird im Allgemeinen als FAST-Aktualisierung bezeichnet, da sie in der Regel schneller ausgeführt wird als die vollständige Aktualisierung.

Bei einer inkrementellen Aktualisierung müssen Materialized Views nicht mehr von Grund auf neu erstellt werden. Daher kann die Verarbeitung nur der Änderungen zu einer sehr schnellen Aktualisierungszeit führen. Bei Materialized Views, die mit der logbasierten Fast Refresh-Methode arbeiten, werden in einem Materialized View Log Änderungen an den Basistabellen aufgezeichnet. Ein Materialized View Log ist ein Schemaobjekt, das Änderungen an einer Basistabelle aufzeichnet, sodass eine in der Basistabelle definierte Materialized View inkrementell aktualisiert werden kann. Jedes Materialized View Log ist mit einer einzelnen Basistabelle verknüpft. Das Materialized View Log befindet sich in derselben Datenbank und demselben Schema wie die Basistabelle. Sie können Oracle Autonomous AI Database aktivieren, um Materialized Views für Remote-Tabellen zu definieren und zu aktualisieren, auf die über Cloud-Links zugegriffen wird.

Autonomous AI Database Serverless führt eine inkrementelle Aktualisierung von Materialized Views mit FAST-Aktualisierung durch. Diese Methode wendet nur die seit der letzten Aktualisierung vorgenommenen Änderungen an, anstatt die gesamte Materialized View vollständig zu aktualisieren.

Unterstützung für inkrementelle Aktualisierungen:
  • Dashboards und Berichte können schnell aktualisiert werden, ohne dass vollständige Daten neu geladen werden. So werden nahezu Echtzeitanalysen ermöglicht.
  • Verbesserte Service Level Agreements (SLAs) für Analyse-Workloads durch verbesserte Datenaktualität.

Unter Typen von Materialized Views finden Sie verschiedene Typen von Materialized Views, die eine inkrementelle Aktualisierung mit Cloud-Links unterstützen.

Cloud-Link mit Materialized View Fast Refresh registrieren

Sie müssen einen Cloud-Link registrieren, um anzugeben, dass die Schnellaktualisierung der Materialized Views unterstützt wird. Verwenden Sie die Prozedur REGISTER im Package DBMS_CLOUD_LINK mit dem Argument MV_FAST_REFRESH, um den Cloud-Link zu registrieren.

Angenommen, für die Tabelle SALES_VIEW_AGG im Schema CLOUDLINK wurde eine Materialized View-Logtabelle erstellt. Dann kann er als Cloud-Link mit aktivierter Fast Refresh-Funktion registriert werden, indem der Wert TRUE für das Argument MV_FAST_REFRESH in der Prozedur REGISTER übergeben wird.
BEGIN
   DBMS_CLOUD_LINK.REGISTER(
    schema_name     => 'CLOUDLINK',
    schema_object   => 'SALES_VIEW_AGG',
    namespace       => 'REGIONAL_SALES', 
    name            => 'SALES_AGG',
    description     => 'Aggregated regional sales information.',
    scope           => 'MY$TENANCY',
    auth_required   =>  FALSE,
    data_set_owner  =>  'tomholl@example.com',
    mv_fast_refresh =>  TRUE );
END;
/
Hinweis

Als Provider müssen Sie die Log-Tabelle der Materialized View für die Basistabelle in der Provider-Datenbank erstellen, die der Materialized View in der Consumer-Datenbank entspricht.

Weitere Informationen finden Sie unter Prozedur REGISTER.

Cloud-Link mit Fast Refresh von Materialized Views aktualisieren

Sie können einen Cloud-Link aktualisieren, um anzugeben, dass die Schnellaktualisierung der Materialized Views auf dem Cloud-Link unterstützt wird.

Angenommen, ein Cloud-Link wird ohne Fast Refresh-Funktion registriert:
BEGIN
   DBMS_CLOUD_LINK.REGISTER(
    schema_name    => 'CLOUDLINK',
    schema_object  => 'SALES_ALL',
    namespace      => 'TRUSTED_COMPARTMENT', 
    name           => 'SALES',
    description    => 'Trusted Compartment, only accessible within my compartment. Early sales data.',
    scope          => 'MY$COMPARTMENT',
    auth_required  =>  FALSE,
    data_set_owner =>  'tomholl@example.com' );
END;
/

Angenommen, eine Logtabelle für die Materialized View wird später für die Tabelle SALES_ALL im Schema CLOUDLINK erstellt. Der Cloud-Link kann aktualisiert werden, um die Fast Refresh-Funktion zu aktivieren, indem der Wert TRUE für das Argument MV_FAST_REFRESH in der Prozedur UPDATE_REGISTRATION übergeben wird.

BEGIN
   DBMS_CLOUD_LINK.UPDATE_REGISTRATION(
    namespace       => 'TRUSTED_COMPARTMENT', 
    name            => 'SALES',
    mv_fast_refresh => TRUE );
END;
/

Die Prozedur UPDATE_REGISTRATION ermöglicht ein Fast Refresh der Materialized View über Cloud-Links, indem sichergestellt wird, dass über den Cloud-Link auf die Logtabelle der Materialized View zugegriffen werden kann. Um darauf zugreifen zu können, müssen Sie den Wert TRUE für das Argument MV_FAST_REFRESH übergeben.

Weitere Informationen finden Sie unter Prozedur UPDATE_REGISTRATION.

Da der Provider die erforderlichen Materialized View-Logs erstellt hat. Sie müssen die Metadaten des Links aktualisieren, um sicherzustellen, dass er die neuen Logtabellen wiedergibt.

Beispiel: Anwendungsfall der inkrementellen Aktualisierung von Materialized Views

Ein Datenanalyst, der mit Dashboards für autonome KI-Datenbankinstanzen arbeitet, kann jetzt Materialized Views für autonome Remote-KI-Datenbanktabellen definieren, auf die über Cloud-Links zugegriffen wird, und diese inkrementell aktualisieren. Dies ermöglicht schnelle Dashboard-Updates ohne vollständige Datenneuladevorgänge, verbessert die Benutzererfahrung und senkt die Kosten.

Voraussetzungen

Bevor Sie eine inkrementelle Aktualisierung für Materialized Views über Cloud-Links implementieren, stellen Sie sicher, dass die folgenden Voraussetzungen erfüllt sind.

  • Cloud-Links sind ordnungsgemäß konfiguriert und getestet.
  • Die Netzwerkkonnektivität zwischen Verbraucher- und Providerdatenbanken ist stabil.
  • Benutzern, die Materialized Views erstellen und aktualisieren, werden entsprechende Berechtigungen erteilt.
  • Für die Providerdatenbank ist das Materialized View Logging für die Basistabellen konfiguriert.

Der Datenanalyst erstellt Dashboards in der autonomen KI-Consumer-Datenbank, die Daten aus der autonomen KI-Datenbank des Anbieters über Cloud-Links abfragen. Anstatt Full Table Scans über die autonome KI-Datenbank hinweg (langsam und teuer) zu erstellen, erstellen sie Materialized Views in der autonomen KI-Datenbank von Consumer mit schneller Aktualisierung, um inkrementell nur geänderte Daten aus autonomen KI-Datenbanktabellen des Providers zu aktualisieren.

  1. Der Provider erstellt ein Materialized View-Log in der Basistabelle.
  2. In der autonomen AI-Providerdatenbank führt ein Datenbankadministrator eine der folgenden DBMS_CLOUD_LINK-Prozeduren aus:
    • REGISTER: Erstellt eine brandneue Cloud-Linkregistrierung mit MV_FAST_REFRESH=TRUE, wodurch die Fast Refresh-Funktion von Anfang an aktiviert wird.
    • UPDATE_REGISTRATION: Ändert eine vorhandene Cloud-Linkregistrierung, um eine Fast Refresh-Funktion hinzuzufügen.

    Der Provider weiß jetzt, dass Logs vorhanden sind und kann sie lesen.

  3. Der Datenanalyst, der in der autonomen KI-Consumer-Datenbank (ihrer Dashboard-Datenbank) arbeitet, führt eine CREATE MATERIALIZED VIEW-Anweisung mit REFRESH FAST aus, um den Dashboard-Datencache zu erstellen.