Ottimizza le prestazioni dei collegamenti cloud con le viste materializzate
Le viste materializzate migliorano le prestazioni dei collegamenti cloud inserendo nella cache i dati remoti localmente nel database dei consumatori e aggiornandoli in modo incrementale invece di rileggere ogni cosa sulla rete ogni volta.
Le viste materializzate vengono spesso utilizzate per migliorare le prestazioni, in particolare quando si memorizzano dati in un database locale che provengono da tabelle o viste remote tramite un database link. Analogamente, le viste materializzate vengono spesso utilizzate al posto delle viste quando sono presenti calcoli o riepiloghi estesi, in particolare su set di dati di grandi dimensioni. Le viste materializzate vengono aggiornate a intervalli specificati, il che significa che i dati non sono sempre aggiornati. Tuttavia, le query su queste viste materializzate sono notevolmente più veloci in questi casi d'uso.
- Aggiornamento delle viste materializzate
Il database gestisce i dati nelle viste materializzate aggiornandoli dopo le modifiche apportate alle tabelle di base. L'aggiornamento di una vista materializzata aggiorna automaticamente tutti i relativi indici. In caso di aggiornamento completo, questo richiede uno spazio di ordinamento temporaneo per ricreare tutti gli indici durante l'aggiornamento. - Aggiornamento incrementale delle viste materializzate sui collegamenti cloud
L'aggiornamento incrementale viene in genere chiamato aggiornamento FAST perché in genere viene eseguito più velocemente dell'aggiornamento completo. - Registrare un collegamento cloud con l'aggiornamento rapido delle viste materializzate
È necessario registrare un collegamento cloud per indicare che l'aggiornamento rapido delle viste materializzate è supportato. Utilizzare la proceduraREGISTERnel pacchettoDBMS_CLOUD_LINKcon argomentoMV_FAST_REFRESHper registrare il collegamento cloud. - Aggiornamento rapido di un collegamento cloud con viste materializzate
È possibile aggiornare un collegamento cloud per indicare che l'aggiornamento rapido delle viste materializzate è supportato nel collegamento cloud. - Esempio: caso d'uso dell'aggiornamento incrementale delle viste materializzate
Questo caso d'uso illustra come condividere i dati tra due istanze di Oracle Autonomous AI Database utilizzando Cloud Link e le viste materializzate di aggiornamento rapido.
Aggiornamento di viste materializzate
Il database gestisce i dati nelle viste materializzate aggiornandoli dopo le modifiche apportate alle tabelle di base. L'aggiornamento di una vista materializzata aggiorna automaticamente tutti i relativi indici. In caso di aggiornamento completo, questo richiede uno spazio di ordinamento temporaneo per ricreare tutti gli indici durante l'aggiornamento.
Tipi di aggiornamento per le viste materializzate:
Di seguito sono riportati i metodi di aggiornamento incrementale per le viste materializzate che utilizzano i collegamenti cloud.
-
aggiornamento basato su log
Per i diversi metodi di aggiornamento, è possibile fare riferimento al capitolo Aggiornamento delle viste materializzate.
L'aggiornamento della registrazione delle modifiche alle partizioni (PCT) e l'aggiornamento della registrazione delle modifiche alle partizioni logiche (LPCT) non sono supportati per le viste materializzate che utilizzano collegamenti cloud.
Aggiornamento incrementale delle viste materializzate sui collegamenti cloud
L'aggiornamento incrementale è in genere chiamato aggiornamento FAST perché di solito viene eseguito più velocemente dell'aggiornamento completo.
Un aggiornamento incrementale elimina la necessità di ricreare le viste materializzate da zero. Pertanto, l'elaborazione solo delle modifiche può comportare un tempo di aggiornamento molto rapido. Per le viste materializzate che utilizzano il metodo di aggiornamento rapido basato su log, un log delle viste materializzate mantiene un record delle modifiche apportate alle tabelle di base. Un log delle viste materializzate è un oggetto schema che registra le modifiche apportate a una tabella di base in modo che una vista materializzata definita nella tabella di base possa essere aggiornata in modo incrementale. Ogni log delle viste materializzate è associato a una singola tabella di base. Il log delle viste materializzate si trova nello stesso database e schema della tabella di base. È possibile consentire a Oracle Autonomous AI Database di definire e aggiornare le viste materializzate sulle tabelle remote a cui si accede tramite collegamenti cloud.
Autonomous AI Database Serverless esegue l'aggiornamento incrementale delle viste materializzate utilizzando l'aggiornamento FAST. Questo metodo applica solo le modifiche apportate dopo l'ultimo aggiornamento, anziché eseguire un aggiornamento completo dell'intera vista materializzata.
- I dashboard e i report possono essere aggiornati rapidamente senza ricaricare i dati completi, consentendo analytics quasi in tempo reale.
- Miglioramento degli accordi sul livello di servizio (SLA) per i carichi di lavoro di analytics attraverso una maggiore freschezza dei dati.
Fare riferimento alla sezione Tipi di viste materializzate per vari tipi di viste materializzate che supportano l'aggiornamento incrementale con i collegamenti cloud.
Registra un collegamento cloud con aggiornamento rapido delle viste materializzate
È necessario registrare un collegamento cloud per indicare che l'aggiornamento rapido della vista materializzata è supportato. Utilizzare la procedura REGISTER nel pacchetto DBMS_CLOUD_LINK con argomento MV_FAST_REFRESH per registrare il collegamento cloud.
SALES_VIEW_AGG nello schema CLOUDLINK. Quindi può essere registrato come collegamento cloud con funzionalità di aggiornamento rapido abilitata passando il valore TRUE per l'argomento MV_FAST_REFRESH nella procedura REGISTER.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;
/In qualità di provider, è necessario creare la tabella di log delle viste materializzate nella tabella di base nel database del provider che corrisponde alla vista materializzata nel database del consumer.
Per ulteriori informazioni, vedere Procedura REGISTER.
Aggiornamento rapido di un collegamento cloud con viste materializzate
È possibile aggiornare un collegamento cloud per indicare che l'aggiornamento rapido delle viste materializzate è supportato nel collegamento cloud.
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;
/Si supponga che in seguito venga creata una tabella di log delle viste materializzate nella tabella SALES_ALL nello schema CLOUDLINK. Il collegamento cloud può essere aggiornato per abilitare la funzionalità di aggiornamento rapido passando il valore TRUE per l'argomento MV_FAST_REFRESH nella procedura UPDATE_REGISTRATION.
BEGIN
DBMS_CLOUD_LINK.UPDATE_REGISTRATION(
namespace => 'TRUSTED_COMPARTMENT',
name => 'SALES',
mv_fast_refresh => TRUE );
END;
/La procedura UPDATE_REGISTRATION consente l'aggiornamento rapido delle viste materializzate sui collegamenti cloud garantendo che la tabella di log delle viste materializzate sia accessibile tramite il collegamento cloud. Per renderlo accessibile, è necessario passare il valore TRUE per l'argomento MV_FAST_REFRESH.
Per ulteriori informazioni, vedere UPDATE_REGISTRATION Procedure.
Poiché il provider ha creato i log delle viste materializzate necessari. È necessario aggiornare i metadati del collegamento per assicurarsi che rifletta le nuove tabelle di log.
Esempio: caso d'uso dell'aggiornamento incrementale delle viste materializzate
Questo caso d'uso illustra come condividere i dati tra due istanze di Oracle Autonomous AI Database utilizzando Cloud Link e le viste materializzate di aggiornamento rapido.
Si consideri un'organizzazione in cui il producer AI Autonomous Database (PRODUCER_DB) del team di vendita memorizza le transazioni di vendita in tempo reale in una tabella denominata SALES_ALL all'interno dello schema CLOUDLINK. Il team di analytics Consumer AI Autonomous Database (CONSUMER_DB) nello stesso compartimento OCI accede a questi dati di vendita tramite un Cloud Link registrato e crea una vista materializzata TRUSTED_SALES_MV di aggiornamento rapido sul Cloud Link ed esegue query sui dati attivi per il reporting. Dopo aver inserito una nuova vendita di lampade da scrivania su Producer, un aggiornamento rapido sincronizza solo la modifica a Consumer per il reporting immediato.
- Il producer crea una tabella e carica i dati di vendita iniziali.
- Il producer registra un collegamento cloud per esporre la tabella.
- Il producer crea un log delle viste materializzate per tenere traccia delle modifiche.
- Il producer aggiorna la registrazione di Cloud Link per abilitare l'aggiornamento rapido.
- Il consumatore crea una vista materializzata sul collegamento cloud.
- Il consumer esegue una query sulla vista materializzata per verificare i dati iniziali.
- Il produttore inserisce nuove transazioni di vendita.
- Il consumer esegue un aggiornamento rapido sulla vista materializzata.
- Il consumer esegue di nuovo una query sulla vista materializzata per visualizzare i dati aggiornati.
Requisiti indispensabili
Prima di implementare l'aggiornamento incrementale per le viste materializzate sui collegamenti cloud, assicurarsi che vengano soddisfatti i prerequisiti riportati di seguito.
- I collegamenti cloud vengono configurati e sottoposti a test in modo appropriato.
- Agli utenti che creeranno e aggiorneranno le viste materializzate vengono concessi privilegi appropriati.
- Il database provider dispone di log delle viste materializzate configurati per le tabelle di base.
Nelle sezioni seguenti viene descritto il flusso di lavoro dettagliato per la condivisione dei dati tra due istanze di Oracle Autonomous AI Database utilizzando Cloud Link e le viste materializzate con aggiornamento rapido in un caso d'uso pratico di esempio. Questo flusso di lavoro e gli esempi di codice associati possono essere modificati e implementati in base alle proprie esigenze.
Passo 1: creazione tabella e caricamento dati vendite iniziali
Il team vendite crea la tabella SALES_ALL che memorizza ogni transazione di checkout proveniente dall'organizzazione, acquisendo l'ID vendita, il nome del prodotto, la quantità, il prezzo unitario e la data di vendita. Carica dieci transazioni iniziali che vanno dal mouse wireless all'altoparlante Bluetooth.
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;Passo 2: registrare il collegamento cloud
Per condividere i dati di vendita con il team di analisi, il DBA lead registra un collegamento cloud nella tabella SALES_ALL. Questo collegamento cloud denominato SALES nello spazio di nomi TRUSTED_COMPARTMENT è una finestra di sola lettura nei dati del producer. Poiché i database AI autonomi di produttori e consumatori si trovano nello stesso compartimento OCI, il DBA imposta l'ambito su 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;
/Passo 3: creare il log delle viste materializzate
Per abilitare gli aggiornamenti incrementali di aggiornamento, il DBA crea un log delle viste materializzate su SALES_ALL. Questo log acquisisce tutte le informazioni di inserimento, aggiornamento ed eliminazione, registrando la chiave primaria, ROWID e sequenza necessarie per l'aggiornamento rapido.
SALES_ALL:CREATE MATERIALIZED VIEW LOG ON SALES_ALL WITH PRIMARY KEY, ROWID, SEQUENCE INCLUDING NEW VALUES;Con il log delle viste materializzate invece di eseguire la scansione dell'intera tabella Produttore, il consumatore può richiedere solo le modifiche dall'ultimo aggiornamento.
Passo 4: aggiornare il collegamento cloud per l'aggiornamento rapido
Con il log delle viste materializzate, il DBA aggiorna la registrazione di Cloud Link per abilitare l'aggiornamento rapido per qualsiasi vista materializzata creata su questo collegamento.
BEGIN
DBMS_CLOUD_LINK.UPDATE_REGISTRATION(
namespace => 'TRUSTED_COMPARTMENT',
name => 'SALES',
mv_fast_refresh => TRUE );
END;
/L'abilitazione dell'aggiornamento rapido a livello di Cloud Link consente a tutti i consumatori di trarre vantaggio dagli aggiornamenti di aggiornamento incrementali.
Passo 5: Creare una vista materializzata
Nell'istanza di Consumer Autonomous AI Database, il team di analytics crea una vista materializzata denominata TRUSTED_SALES_MV che seleziona tutte le colonne da Cloud Link. La vista materializzata viene configurata con REFRESH FAST ON DEMAND, che utilizza il log delle viste materializzate del producer per applicare solo modifiche incrementali durante ogni aggiornamento.
CREATE MATERIALIZED VIEW TRUSTED_SALES_MV REFRESH FAST ON DEMAND AS SELECT * from TRUSTED_COMPARTMENT.SALES@CLOUD$LINK;Gli analisti possono eseguire aggregazioni, join e filtri complessi in TRUSTED_SALES_MV senza alcun impatto sul producer. Poiché è configurato per l'aggiornamento rapido, il consumatore può rimanere sincronizzato con il produttore.
Passo 6: Esecuzione di query sulla vista materializzata
Gli analisti eseguono una query su TRUSTED_SALES_MV per verificare se possono visualizzare le dieci transazioni di vendita iniziali. La query restituisce i nomi dei prodotti, le quantità e i prezzi unitari per articoli quali Mouse wireless, Sedia ergonomica e SSD esterno 1TB corrispondenti ai dati caricati nella tabella SALES_ALL del produttore.
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.00L'output visualizza i dati delle vendite visibili nella vista materializzata Consumatore. I consumatori ora possono accedere ai dati di vendita senza toccare il database dei produttori.
Passo 7: inserimento di nuovi dati di vendita
Più tardi nella giornata, l'organizzazione lancia una vendita su lampade da scrivania per cancellare l'inventario in eccesso. Le nuove transazioni vengono elaborate e inserite in SALES_ALL nel producer. Il log delle viste materializzate acquisisce automaticamente questa nuova riga, tenendo traccia delle modifiche per il successivo aggiornamento del consumer.
SALES_ALL: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;Il Produttore continua a gestire le transazioni live indipendentemente dal Consumatore. Il log delle viste materializzate registra la modifica, consentendo al consumatore di ottenere le informazioni durante l'aggiornamento successivo.
Passo 8: aggiornamento rapido della vista materializzata
Consumer Autonomous AI Database attiva un aggiornamento rapido di TRUSTED_SALES_MV utilizzando la procedura DBMS_MVIEW.REFRESH con l'opzione 'F' (veloce). Durante il processo di aggiornamento, TRUSTED_SALES_MV viene aggiornato localmente solo con la nuova riga Lampada da tavolo del log delle viste materializzate del producer.
BEGIN
DBMS_MVIEW.REFRESH('TRUSTED_SALES_MV', 'F');
END;
/Invece di rileggere tutte le dieci (o migliaia) righe, l'aggiornamento di Consumer Autonomous AI Database recupera solo la nuova riga aggiunta dopo l'ultimo aggiornamento.
Passo 9: Query aggiornata - Vista materializzata
Gli analisti eseguono di nuovo la stessa query e ora vedono undici righe, tra cui la nuova lampada da tavolo aggiunta con una quantità di 10 e un prezzo unitario di 24,99. I dati di vendita sono immediatamente disponibili per la segnalazione.
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
L'output visualizza i dati di vendita aggiornati dopo l'aggiornamento rapido, inclusa la nuova vendita di lampade da tavolo.
L'organizzazione ha implementato con successo una condivisione di dati utilizzando Oracle Autonomous AI Database Cloud Link e le viste materializzate di aggiornamento rapido.