Optimiser les performances des liens cloud à l'aide de vues matérialisées
Les vues matérialisées améliorent les performances des liaisons cloud en mettant en cache les données distantes localement dans la base de données du consommateur et en les actualisant de manière incrémentielle au lieu de tout relire sur le réseau à chaque fois.
Les vues matérialisées sont souvent utilisées pour améliorer les performances, en particulier lors du stockage de données dans une base de données locale provenant de tables ou de vues distantes via un lien de base de données. De même, les vues matérialisées sont souvent utilisées à la place des vues lorsqu'il existe des calculs ou des synthèses complets, en particulier sur les jeux de données volumineux. Les vues matérialisées sont actualisées à des intervalles spécifiés, ce qui signifie que les données ne sont pas toujours à jour. Toutefois, les interrogations sur ces vues matérialisées sont nettement plus rapides dans ces cas d'emploi.
- Actualisation des vues matérialisées
La base de données tient à jour les données des vues matérialisées en les actualisant après les modifications apportées aux tables de base. L'actualisation d'une vue matérialisée met automatiquement à jour tous ses index. Dans le cas d'une actualisation complète, cela nécessite un espace de tri temporaire pour reconstruire tous les index lors de l'actualisation. - Actualisation incrémentielle des vues matérialisées via des liens cloud
L'actualisation incrémentielle est généralement appelée actualisation FAST car elle s'exécute généralement plus rapidement que l'actualisation complète. - Inscription d'un lien cloud avec l'actualisation rapide de la vue matérialisée
Vous devez inscrire un lien cloud pour indiquer que l'actualisation rapide de la vue matérialisée est prise en charge. Utilisez la procédureREGISTERdu packageDBMS_CLOUD_LINKavec l'argumentMV_FAST_REFRESHpour inscrire le lien cloud. - Mise à jour d'un lien cloud avec l'actualisation rapide de vue matérialisée
Vous pouvez mettre à jour un lien cloud pour indiquer que l'actualisation rapide de vue matérialisée est prise en charge sur le lien cloud. - Exemple : cas d'utilisation de l'actualisation incrémentielle des vues matérialisées
Ce cas d'utilisation montre comment partager des données entre deux instances Oracle Autonomous AI Database à l'aide de Cloud Link et d'actualiser rapidement les vues matérialisées.
Régénération de vues matérialisées
La base de données tient à jour les données des vues matérialisées en les actualisant après les modifications apportées aux tables de base. L'actualisation d'une vue matérialisée met automatiquement à jour tous ses index. Dans le cas d'une actualisation complète, cela nécessite un espace de tri temporaire pour reconstruire tous les index lors de l'actualisation.
Types d'actualisation des vues matérialisées :
Voici les méthodes d'actualisation incrémentielle des vues matérialisées qui utilisent des liens cloud :
-
actualisation basée sur les journaux
Pour connaître les différentes méthodes d'actualisation, reportez-vous au chapitre Actualisation des vues matérialisées.
L'actualisation du suivi des modifications de partition (PCT) et l'actualisation du suivi des modifications de partition logique (LPCT) ne sont pas prises en charge pour les vues matérialisées qui utilisent des liens cloud.
Actualisation incrémentielle des vues matérialisées sur les liens cloud
L'actualisation incrémentielle est généralement appelée actualisation FAST car elle s'exécute généralement plus rapidement que l'actualisation complète.
Une actualisation incrémentielle élimine la nécessité de reconstruire des vues matérialisées à partir de zéro. Par conséquent, le traitement des seules modifications peut entraîner un temps d'actualisation très rapide. Pour des vues matérialisées qui utilisent la méthode de régénération de type Fast basée sur les journaux, un journal de vues matérialisées garde l'enregistrement des modifications apportées aux tables de base. Un journal de vues matérialisées est un objet de schéma qui enregistre les modifications apportées à une table de base afin qu'une vue matérialisée définie dans la table de base puisse être actualisée de manière incrémentielle. Chaque journal de vues matérialisées est associé à une seule table de base. Le journal des vues matérialisées réside dans la même base des données et dans le même schéma que sa table de base. Vous pouvez activer Oracle Autonomous AI Database pour définir et actualiser les vues matérialisées sur les tables distantes accessibles via des liens cloud.
Autonomous AI Database Serverless effectue une actualisation incrémentielle des vues matérialisées à l'aide de l'actualisation FAST. Cette méthode applique uniquement les modifications apportées depuis la dernière actualisation, plutôt que d'effectuer une actualisation complète de l'ensemble de la vue matérialisée.
- Les tableaux de bord et les rapports peuvent être actualisés rapidement sans rechargement complet des données, ce qui permet des analyses quasiment en temps réel.
- Amélioration des contrats de niveau de service (SLA) pour les workloads d'analyse grâce à une fraîcheur accrue des données.
Pour connaître les différents types de vue matérialisée prenant en charge l'actualisation incrémentielle à l'aide de liens cloud, voir Types de vue matérialisée.
Enregistrement d'un lien cloud avec une actualisation rapide de vue matérialisée
Vous devez inscrire un lien cloud pour indiquer que l'actualisation rapide des vues matérialisées est prise en charge. Utilisez la procédure REGISTER du package DBMS_CLOUD_LINK avec l'argument MV_FAST_REFRESH pour inscrire le lien cloud.
SALES_VIEW_AGG dans le schéma CLOUDLINK. Il peut ensuite être inscrit en tant que lien cloud avec la fonctionnalité d'actualisation rapide activée en transmettant la valeur TRUE pour l'argument MV_FAST_REFRESH dans la procédure 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;
/En tant que fournisseur, vous devez créer la table de journalisation des vues matérialisées dans la table de base de la base de données du fournisseur qui correspond à la vue matérialisée dans la base de données du consommateur.
Pour plus d'informations, voir Procédure REGISTER.
Mise à jour rapide d'un lien cloud avec une vue matérialisée
Vous pouvez mettre à jour un lien cloud pour indiquer que l'actualisation rapide des vues matérialisées est prise en charge sur le lien 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;
/Supposons qu'une table de journal de vue matérialisée soit créée ultérieurement sur la table SALES_ALL dans le schéma CLOUDLINK. Le lien cloud peut être mis à jour pour activer la fonctionnalité d'actualisation rapide en transmettant la valeur TRUE pour l'argument MV_FAST_REFRESH dans la procédure UPDATE_REGISTRATION.
BEGIN
DBMS_CLOUD_LINK.UPDATE_REGISTRATION(
namespace => 'TRUSTED_COMPARTMENT',
name => 'SALES',
mv_fast_refresh => TRUE );
END;
/La procédure UPDATE_REGISTRATION permet l'actualisation rapide des vues matérialisées via les liens cloud en veillant à ce que la table de journal des vues matérialisées soit accessible via le lien cloud. Pour le rendre accessible, vous devez transmettre la valeur TRUE pour l'argument MV_FAST_REFRESH.
Pour plus d'informations, voir Procédure UPDATE_REGISTRATION.
Le fournisseur ayant créé les journaux de vues matérialisées requis. Vous devez actualiser les métadonnées du lien pour vous assurer qu'il reflète les nouvelles tables de journalisation.
Exemple : cas d'emploi de l'actualisation incrémentielle des vues matérialisées
Ce cas d'utilisation explique comment partager des données entre deux instances Oracle Autonomous AI Database à l'aide de Cloud Link et d'actualiser rapidement des vues matérialisées.
Prenons l'exemple d'une organisation dans laquelle l'équipe commerciale Producer AI Autonomous Database (PRODUCER_DB) stocke les transactions de vente en direct dans une table appelée SALES_ALL dans le schéma CLOUDLINK. L'équipe d'analyse Consumer AI Autonomous Database (CONSUMER_DB) dans le même compartiment OCI accède à ces données de vente via un lien cloud inscrit et crée une vue matérialisée actualisée rapide TRUSTED_SALES_MV sur le lien cloud et interroge les données en direct pour le reporting. Après avoir inséré une nouvelle vente de lampe de bureau sur Producer, une actualisation rapide synchronise simplement le changement vers Consumer pour un reporting instantané.
- Le fournisseur de portlets crée une table et charge les données de vente initiales.
- Le fournisseur de portlets enregistre un lien cloud pour afficher la table.
- Le fournisseur de portlets crée un journal de vues matérialisées pour suivre les modifications.
- Le fournisseur de portlets met à jour l'inscription de lien cloud pour activer l'actualisation rapide.
- Le destinataire crée une vue matérialisée sur le lien cloud.
- Le destinataire interroge la vue matérialisée pour vérifier les données initiales.
- Le producteur insère de nouvelles transactions de vente.
- Le consommateur effectue une régénération rapide sur la vue matérialisée.
- Le destinataire interroge à nouveau la vue matérialisée pour voir les données mises à jour.
Conditions préalables
Avant d'implémenter une actualisation incrémentielle pour les vues matérialisées sur les liaisons cloud, assurez-vous que les prérequis suivants sont respectés.
- Les liens cloud sont correctement configurés et testés.
- Les privilèges appropriés sont accordés aux utilisateurs qui créeront et actualiseront des vues matérialisées.
- La journalisation des vues matérialisées est configurée pour les tables de base dans la base de données du fournisseur.
Les sections suivantes décrivent le workflow détaillé de partage de données entre deux instances Oracle Autonomous AI Database à l'aide de Cloud Link et d'actualisations rapides des vues matérialisées dans un exemple de cas d'utilisation pratique. Ce flux de travail et les exemples de code associés peuvent être modifiés et implémentés en fonction de vos besoins.
Etape 1 : Créer une table et charger les données de ventes initiales
L'équipe de vente crée la table SALES_ALL qui stocke chaque transaction de paiement provenant de l'organisation, en capturant l'ID de vente, le nom du produit, la quantité, le prix unitaire et la date de vente. Il charge dix transactions initiales allant de la souris sans fil au haut-parleur 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;Etape 2 : inscription du lien cloud
Pour partager les données de vente avec l'équipe d'analyse, l'administrateur de base de données principal inscrit un lien cloud dans la table SALES_ALL. Ce lien cloud nommé SALES dans l'espace de noms TRUSTED_COMPARTMENT est une fenêtre en lecture seule dans les données du fournisseur de portlets. Etant donné que les bases de données d'IA autonomes émetteur et consommateur se trouvent dans le même compartiment OCI, l'administrateur de base de données définit la portée sur 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;
/Etape 3 : création d'un journal des vues matérialisées
Pour activer les mises à jour d'actualisation incrémentielle, l'administrateur de base de données crée un journal de vues matérialisées sur SALES_ALL. Ce journal capture toutes les informations d'insertion, de mise à jour et de suppression, d'enregistrement de la clé primaire, du ROWID et de la séquence nécessaires à l'actualisation rapide.
SALES_ALL :CREATE MATERIALIZED VIEW LOG ON SALES_ALL WITH PRIMARY KEY, ROWID, SEQUENCE INCLUDING NEW VALUES;Avec le journal des vues matérialisées au lieu d'analyser l'ensemble de la table Producer, le consommateur ne peut demander que les modifications depuis la dernière actualisation.
Etape 4 : mise à jour du lien cloud pour une actualisation rapide
Avec le journal des vues matérialisées, l'administrateur de base de données met à jour l'inscription Cloud Link pour activer l'actualisation rapide des vues matérialisées créées sur ce lien.
BEGIN
DBMS_CLOUD_LINK.UPDATE_REGISTRATION(
namespace => 'TRUSTED_COMPARTMENT',
name => 'SALES',
mv_fast_refresh => TRUE );
END;
/L'activation de l'actualisation rapide au niveau du lien cloud permet à tous les consommateurs de bénéficier des mises à jour d'actualisation incrémentielle.
Etape 5 : Créer une vue matérialisée
Dans l'instance de base de données d'IA autonome du consommateur, l'équipe d'analyse crée une vue matérialisée appelée TRUSTED_SALES_MV qui sélectionne toutes les colonnes à partir du lien cloud. La vue matérialisée est configurée avec REFRESH FAST ON DEMAND, qui utilise le journal de vues matérialisées du fournisseur de portlets pour appliquer uniquement les modifications incrémentielles lors de chaque actualisation.
CREATE MATERIALIZED VIEW TRUSTED_SALES_MV REFRESH FAST ON DEMAND AS SELECT * from TRUSTED_COMPARTMENT.SALES@CLOUD$LINK;Les analystes peuvent exécuter des agrégations complexes, des jointures et des filtres sur TRUSTED_SALES_MV sans affecter le fournisseur de portlets. Etant donné qu'il est configuré pour l'actualisation rapide, le consommateur peut rester synchronisé avec le producteur.
Etape 6 : Interroger la vue matérialisée
Les analystes interrogent TRUSTED_SALES_MV pour vérifier s'ils peuvent voir les dix transactions de vente initiales. La requête renvoie les noms de produit, les quantités et les prix unitaires pour des éléments tels que la souris sans fil, la chaise ergonomique et le SSD externe 1 To correspondant aux données chargées dans la table SALES_ALL du producteur.
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.00La sortie affiche les données de vente visibles dans la vue matérialisée Consommateur. Les consommateurs peuvent désormais accéder aux données de vente sans toucher à la base de données Producer.
Etape 7 : Insérer de nouvelles données de vente
Plus tard dans la journée, l'organisation lance une vente sur les lampes de bureau pour effacer les stocks excédentaires. Les nouvelles transactions sont traitées et insérées dans SALES_ALL dans le fournisseur de portlets. Le journal des vues matérialisées capture automatiquement cette nouvelle ligne, suivi de la modification pour la prochaine actualisation du consommateur.
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;Le producteur continue de gérer les transactions en direct indépendamment du consommateur. Le journal des vues matérialisées enregistre la modification, ce qui permet au consommateur d'obtenir les informations lors de la prochaine actualisation.
Etape 8 : Rafraîchissement rapide de la vue matérialisée
La base de données d'IA autonome consommateur déclenche une actualisation rapide de TRUSTED_SALES_MV à l'aide de la procédure DBMS_MVIEW.REFRESH avec l'option F (rapide). Au cours du processus d'actualisation, TRUSTED_SALES_MV est mis à jour localement avec uniquement la nouvelle ligne Lampe de bureau du journal de vues matérialisées du fournisseur de portlets.
BEGIN
DBMS_MVIEW.REFRESH('TRUSTED_SALES_MV', 'F');
END;
/Au lieu de relire les dix (ou milliers) lignes, l'actualisation de la base de données d'IA autonome du consommateur extrait uniquement la nouvelle ligne ajoutée depuis la dernière actualisation.
Etape 9 : Interroger la vue matérialisée mise à jour
Les analystes exécutent à nouveau la même requête et voient maintenant onze lignes, y compris la lampe de bureau nouvellement ajoutée avec une quantité de 10 et un prix unitaire de 24,99. Les données de vente sont immédiatement disponibles pour le reporting.
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
La sortie affiche les données de vente mises à jour après une actualisation rapide, y compris la nouvelle vente de lampe de bureau.
L'entreprise a implémenté avec succès un partage de données à l'aide d'Oracle Autonomous AI Database Cloud Link et des vues matérialisées à rafraîchissement rapide.