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. - 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. - Cloud-Link mit Fast Refresh der Materialized View registrieren
Sie müssen einen Cloud-Link registrieren, um anzugeben, dass Fast Refresh der Materialized View unterstützt wird. Verwenden Sie die ProzedurREGISTERim PackageDBMS_CLOUD_LINKmit dem ArgumentMV_FAST_REFRESH, um den Cloud-Link zu registrieren. - Cloud-Link mit Fast Refresh der Materialized View aktualisieren
Sie können einen Cloud-Link aktualisieren, um anzugeben, dass Fast Refresh der Materialized View auf dem Cloud-Link unterstützt wird. - Beispiel: Anwendungsfall der inkrementellen Aktualisierung von Materialized Views
In diesem Anwendungsfall wird gezeigt, wie Sie Daten mit Cloud-Link und Fast-Refresh-Materialized Views zwischen zwei Oracle Autonomous AI Database-Instanzen gemeinsam verwenden.
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.
Aktualisierung des Partitionsänderungstrackings (PCT) und Aktualisierung des logischen Partitionsänderungstrackings (LPCT) werden für Materialized Views, die Cloud-Links verwenden, nicht unterstützt.
Übergeordnetes Thema: Performance von Cloud-Links mit Materialized Views optimieren
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.
- 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.
Übergeordnetes Thema: Performance von Cloud-Links mit Materialized Views optimieren
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.
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;
/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.
Übergeordnetes Thema: Performance von Cloud-Links mit Materialized Views optimieren
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.
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.
Übergeordnetes Thema: Performance von Cloud-Links mit Materialized Views optimieren
Beispiel: Anwendungsfall der inkrementellen Aktualisierung von Materialized Views
Dieser Anwendungsfall zeigt, wie Sie Daten mit Cloud Link und Materialized Views schnell aktualisieren, zwischen zwei Oracle Autonomous AI Database-Instanzen teilen.
Betrachten Sie eine Organisation, in der das Vertriebsteam Producer AI Autonomous Database (PRODUCER_DB) Live-Verkaufstransaktionen in einer Tabelle namens SALES_ALL im Schema CLOUDLINK speichert. Das Analyseteam Consumer AI Autonomous Database (CONSUMER_DB) im selben OCI-Compartment greift über einen registrierten Cloud-Link auf diese Vertriebsdaten zu und erstellt eine schnell aktualisierte Materialized View TRUSTED_SALES_MV im Cloud-Link und fragt Livedaten für das Reporting ab. Nach dem Einfügen eines neuen Schreibtischlampenverkaufs auf Producer synchronisiert eine schnelle Aktualisierung nur die Änderung an Consumer für sofortiges Reporting.
- Der Producer erstellt eine Tabelle und lädt die anfänglichen Umsatzdaten.
- Der Producer registriert einen Cloud-Link, um die Tabelle anzuzeigen.
- Der Producer erstellt ein Materialized View-Log, um Änderungen zu verfolgen.
- Der Producer aktualisiert die Cloud-Link-Registrierung, um eine schnelle Aktualisierung zu aktivieren.
- Der Consumer erstellt eine Materialized View auf dem Cloud-Link.
- Der Consumer fragt die Materialized View ab, um die anfänglichen Daten zu prüfen.
- Der Producer fügt neue Verkaufstransaktionen ein.
- Der Consumer führt eine schnelle Aktualisierung der Materialized View aus.
- Der Consumer fragt die Materialized View erneut ab, um aktualisierte Daten anzuzeigen.
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.
- 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.
In den folgenden Abschnitten wird der detaillierte Workflow zum Teilen von Daten zwischen zwei Oracle Autonomous AI Database-Instanzen mit Cloud Link und Fast-Refresh-Materialized-Ansichten in einem praktischen Beispielanwendungsfall beschrieben. Dieser Workflow und die zugehörigen Codebeispiele können entsprechend Ihren Anforderungen geändert und implementiert werden.
1. Schritt: Tabelle erstellen und erste Vertriebsdaten laden
Das Vertriebsteam erstellt die Tabelle SALES_ALL, in der alle aus der Organisation kommenden Kassenausgangstransaktionen gespeichert werden. Dabei werden die Verkaufs-ID, der Produktname, die Menge, der Einzelpreis und das Verkaufsdatum erfasst. Es lädt zehn erste Transaktionen, die von Wireless-Maus bis Bluetooth-Lautsprecher reichen.
CREATE TABLE SALES_ALL (
sale_id NUMBER PRIMARY KEY,
product_name VARCHAR2(100),
quantity NUMBER,
unit_price NUMBER(10, 2),
sale_date DATE DEFAULT SYSDATE
);
INSERT INTO SALES_ALL (sale_id, product_name, quantity, unit_price, sale_date) VALUES (1, 'Wireless Mouse', 2, 25.50, TO_DATE('2026-01-29', 'YYYY-MM-DD'));
INSERT INTO SALES_ALL (sale_id, product_name, quantity, unit_price, sale_date) VALUES (2, 'Mechanical Keyboard', 1, 89.99, TO_DATE('2026-01-20', 'YYYY-MM-DD'));
INSERT INTO SALES_ALL (sale_id, product_name, quantity, unit_price, sale_date) VALUES (3, 'USB-C Hub', 3, 45.00, TO_DATE('2026-01-21', 'YYYY-MM-DD'));
INSERT INTO SALES_ALL (sale_id, product_name, quantity, unit_price, sale_date) VALUES (4, '27-inch Monitor', 2, 299.99, TO_DATE('2026-01-22', 'YYYY-MM-DD'));
INSERT INTO SALES_ALL (sale_id, product_name, quantity, unit_price, sale_date) VALUES (5, 'Ergonomic Chair', 1, 350.00, TO_DATE('2026-01-23', 'YYYY-MM-DD'));
INSERT INTO SALES_ALL (sale_id, product_name, quantity, unit_price, sale_date) VALUES (6, 'HD Webcam', 5, 65.25, TO_DATE('2026-01-24', 'YYYY-MM-DD'));
INSERT INTO SALES_ALL (sale_id, product_name, quantity, unit_price, sale_date) VALUES (7, 'Laptop Stand', 2, 39.95, TO_DATE('2026-01-25', 'YYYY-MM-DD'));
INSERT INTO SALES_ALL (sale_id, product_name, quantity, unit_price, sale_date) VALUES (8, 'Noise Cancelling Headphones', 1, 199.00, TO_DATE('2026-01-26', 'YYYY-MM-DD'));
INSERT INTO SALES_ALL (sale_id, product_name, quantity, unit_price, sale_date) VALUES (9, 'External SSD 1TB', 4, 120.00, TO_DATE('2026-01-27', 'YYYY-MM-DD'));
INSERT INTO SALES_ALL (sale_id, product_name, quantity, unit_price, sale_date) VALUES (10, 'Bluetooth Speaker', 3, 55.00, TO_DATE('2026-01-28', 'YYYY-MM-DD'));
COMMIT;Schritt 2: Cloud-Link registrieren
Um Vertriebsdaten mit dem Analyseteam zu teilen, registriert der Lead-DBA einen Cloud-Link in der Tabelle SALES_ALL. Dieser Cloud-Link mit dem Namen SALES im Namespace TRUSTED_COMPARTMENT ist ein schreibgeschütztes Fenster in die Producer-Daten. Da sich sowohl autonome Producer- als auch Consumer-KI-Datenbanken im selben OCI-Compartment befinden, setzt der DBA den Geltungsbereich auf MY$COMPARTMENT.
DBMS_CLOUD_LINK.REGISTER: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;
/Schritt 3: Materialized View-Protokoll erstellen
Um inkrementelle Aktualisierungen zu aktivieren, erstellt der DBA ein Materialized View-Log in SALES_ALL. Dieses Log erfasst alle Einfüge-, Aktualisierungs- und Löschvorgänge und zeichnet den Primärschlüssel, die ROWID und die Sequence-Informationen auf, die für eine schnelle Aktualisierung erforderlich sind.
SALES_ALL:CREATE MATERIALIZED VIEW LOG ON SALES_ALL WITH PRIMARY KEY, ROWID, SEQUENCE INCLUDING NEW VALUES;Mit dem Materialized View-Log, anstatt die gesamte Producer-Tabelle zu scannen, kann der Consumer nur die Änderungen seit der letzten Aktualisierung anfordern.
Schritt 4: Cloud-Link für schnelle Aktualisierung aktualisieren
Mit dem Materialized View-Log aktualisiert der DBA die Cloud Link-Registrierung, um eine schnelle Aktualisierung für alle Materialized Views zu ermöglichen, die auf diesem Link basieren.
BEGIN
DBMS_CLOUD_LINK.UPDATE_REGISTRATION(
namespace => 'TRUSTED_COMPARTMENT',
name => 'SALES',
mv_fast_refresh => TRUE );
END;
/Durch die Aktivierung der Schnellaktualisierung auf Cloud-Linkebene können alle Consumer von inkrementellen Aktualisierungsupdates profitieren.
5. Schritt: Materialized View erstellen
In der Instanz der autonomen KI-Datenbank für Consumer erstellt das Analyseteam eine Materialized View mit dem Namen TRUSTED_SALES_MV, die alle Spalten aus dem Cloud-Link auswählt. Die Materialized View ist mit REFRESH FAST ON DEMAND konfiguriert. Dabei wird das Materialized View-Log des Producers verwendet, um während jeder Aktualisierung nur inkrementelle Änderungen anzuwenden.
CREATE MATERIALIZED VIEW TRUSTED_SALES_MV REFRESH FAST ON DEMAND AS SELECT * from TRUSTED_COMPARTMENT.SALES@CLOUD$LINK;Die Analysten können komplexe Aggregationen, Joins und Filter auf TRUSTED_SALES_MV ausführen, ohne dass dies Auswirkungen auf den Producer hat. Da es für eine schnelle Aktualisierung konfiguriert ist, kann der Consumer mit dem Producer synchron bleiben.
Schritt 6: Materialized View abfragen
Die Analysten fragen TRUSTED_SALES_MV ab, um zu prüfen, ob sie die ersten zehn Verkaufstransaktionen anzeigen können. Die Abfrage gibt Produktnamen, Mengen und Stückpreise für Artikel wie Wireless Mouse, Ergonomic Chair und External SSD 1 TB zurück, die mit den in die Tabelle SALES_ALL des Produzenten geladenen Daten übereinstimmen.
SELECT PRODUCT_NAME, QUANTITY, UNIT_PRICE FROM TRUSTED_SALES_MV;PRODUCT_NAME QUANTITY UNIT_PRICE
Wireless Mouse 2 25.50
Mechanical Keyboard 1 89.99
USB-C Hub 3 45.00
27-inch Monitor 2 299.99
Ergonomic Chair 1 350.00
HD Webcam 5 65.25
Laptop Stand 2 39.95
Noise Cancelling Headphones 1 199.00
External SSD 1TB 4 120.00
Bluetooth Speaker 3 55.00In der Ausgabe werden die Umsatzdaten angezeigt, die in der Materialized View für Konsumenten angezeigt werden. Die Consumer können jetzt auf Vertriebsdaten zugreifen, ohne die Producer-Datenbank zu berühren.
Schritt 7: Neue Vertriebsdaten einfügen
Später am Tag startet die Organisation einen Verkauf an Desk Lamps, um überschüssigen Bestand zu löschen. Neue Transaktionen werden verarbeitet und in SALES_ALL im Producer eingefügt. Das Materialized View-Log erfasst diese neue Zeile automatisch und verfolgt die Änderung für die nächste Consumer-Aktualisierung.
SALES_ALL ein:INSERT INTO SALES_ALL (sale_id, product_name, quantity, unit_price, sale_date) VALUES (11, 'Desk Lamp', 10, 24.99, TO_DATE('2026-01-29', 'YYYY-MM-DD'));
COMMIT;Der Producer verarbeitet weiterhin Live-Transaktionen unabhängig vom Verbraucher. Das Materialized View-Log zeichnet die Änderung auf, sodass der Consumer die Informationen bei der nächsten Aktualisierung abrufen kann.
Schritt 8: Materialized View schnell aktualisieren
Die autonome KI-Consumer-Datenbank löst eine schnelle Aktualisierung von TRUSTED_SALES_MV mit der Prozedur DBMS_MVIEW.REFRESH mit der Option "F" (schnell) aus. Während des Aktualisierungsprozesses wird TRUSTED_SALES_MV lokal mit nur der neuen Zeile "Schreibtischlampe" aus dem Materialized View-Log des Produzenten aktualisiert.
BEGIN
DBMS_MVIEW.REFRESH('TRUSTED_SALES_MV', 'F');
END;
/Anstatt alle zehn (oder Tausende) Zeilen erneut zu lesen, ruft die Aktualisierung der autonomen KI-Datenbank von Consumer nur die neue Zeile ab, die seit der letzten Aktualisierung hinzugefügt wurde.
Schritt 9: Aktualisierte Materialized View abfragen
Die Analysten führen die gleiche Abfrage erneut aus und sehen nun elf Zeilen, darunter die neu hinzugefügte Schreibtischlampe mit einer Menge von 10 und einem Stückpreis von 24,99. Die Verkaufsdaten stehen sofort zur Berichterstattung zur Verfügung.
SELECT PRODUCT_NAME, QUANTITY, UNIT_PRICE FROM TRUSTED_SALES_MV;PRODUCT_NAME QUANTITY UNIT_PRICE
Wireless Mouse 2 25.50
Mechanical Keyboard 1 89.99
USB-C Hub 3 45.00
27-inch Monitor 2 299.99
Ergonomic Chair 1 350.00
HD Webcam 5 65.25
Laptop Stand 2 39.95
Noise Cancelling Headphones 1 199.00
External SSD 1TB 4 120.00
Bluetooth Speaker 3 55.00
Desk Lamp 10 24.99
Die Ausgabe zeigt aktualisierte Verkaufsdaten nach der schnellen Aktualisierung an, einschließlich des Verkaufs neuer Schreibtischlampe.
Die Organisation hat erfolgreich eine Datenfreigabe mit Oracle Autonomous AI Database Cloud Link und schnell aktualisierten Materialized Views implementiert.
Übergeordnetes Thema: Performance von Cloud-Links mit Materialized Views optimieren