Optimiser le rendement des liens en nuage grâce à des vues matérialisées
Les vues matérialisées améliorent la performance des liens en nuage en mettant en mémoire cache les données distantes localement dans la base de données des consommateurs 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 regroupements étendus, en particulier sur des jeux de données volumineux. Les vues matérialisées sont actualisées à des intervalles spécifiques, ce qui signifie que les données ne sont pas toujours à jour. Toutefois, dans ces cas d'utilisation, les interrogations sur ces vues matérialisées sont beaucoup plus rapides.
- Régénération des vues matérialisées
La base de données conserve les données dans les 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 recréer tous les index pendant l'actualisation. - Actualisation incrémentielle des vues matérialisées sur des liens en nuage
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. - Enregistrer un lien en nuage avec l'actualisation rapide des vues matérialisées
Vous devez enregistrer un lien en nuage pour indiquer que l'actualisation rapide des vues matérialisées est prise en charge. Utilisez la procédureREGISTERdans l'ensembleDBMS_CLOUD_LINKavec l'argumentMV_FAST_REFRESHpour enregistrer le lien en nuage. - Mettre à jour un lien en nuage avec l'actualisation rapide des vues matérialisées
Vous pouvez mettre à jour un lien en nuage pour indiquer que l'actualisation rapide des vues matérialisées est prise en charge sur le lien en nuage. - 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 de vues matérialisées à actualisation rapide.
Actualisation des vues matérialisées
La base de données conserve les données dans les 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 recréer tous les index pendant l'actualisation.
Types d'actualisation pour les vues matérialisées :
Voici les méthodes d'actualisation incrémentielle des vues matérialisées qui utilisent des liens en nuage :
-
actualisation basée sur un journal
Pour différentes méthodes d'actualisation, vous pouvez consulter le 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 en nuage.
Rubrique parent : Optimiser la performance des liens en nuage avec les vues matérialisées
Actualisation incrémentielle des vues matérialisées sur les liens en nuage
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 recréer les vues matérialisées à partir de zéro. Ainsi, seul le traitement des modifications peut entraîner un temps d'actualisation très rapide. Pour les vues matérialisées qui utilisent la méthode d'actualisation rapide basée sur un journal, un journal de vues matérialisées conserve un 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 sur la table de base puisse être actualisée de manière incrémentielle. Chaque journal de vue matérialisée est associé à une seule table de base. Le journal des vues matérialisées réside dans la même base de données et 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 au moyen de liens vers le nuage.
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, au lieu 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 en temps quasi réel.
- Amélioration des contrats de niveau de service (CNS) pour les charges de travail d'analyse grâce à une actualisation améliorée des données.
Voir Types de vues matérialisées pour divers types de vues matérialisées qui prennent en charge l'actualisation incrémentielle avec des liens en nuage.
Rubrique parent : Optimiser la performance des liens en nuage avec les vues matérialisées
Enregistrer un lien en nuage avec l'actualisation rapide de vue matérialisée
Vous devez enregistrer un lien en nuage pour indiquer que l'actualisation rapide des vues matérialisées est prise en charge. Utilisez la procédure REGISTER dans l'ensemble DBMS_CLOUD_LINK avec l'argument MV_FAST_REFRESH pour enregistrer le lien en nuage.
SALES_VIEW_AGG dans le schéma CLOUDLINK. Il peut ensuite être enregistré en tant que lien en nuage avec la fonction 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 journal des vues matérialisées sur 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.
Rubrique parent : Optimiser la performance des liens en nuage avec les vues matérialisées
Mettre à jour un lien vers le nuage avec l'actualisation rapide de vue matérialisée
Vous pouvez mettre à jour un lien en nuage pour indiquer que l'actualisation rapide des vues matérialisées est prise en charge sur le lien en nuage.
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 en nuage peut être mis à jour pour permettre l'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 sur les liens en nuage en s'assurant que la table de journal des vues matérialisées est accessible par le lien en nuage. Pour le rendre accessible, vous devez transmettre la valeur TRUE pour l'argument MV_FAST_REFRESH.
Pour plus d'informations, consultez la procédure UPDATE_REGISTRATION.
Comme le fournisseur a créé les journaux de vue matérialisée requis. Vous devez actualiser les métadonnées du lien pour vous assurer qu'elles reflètent les nouvelles tables de journaux.
Rubrique parent : Optimiser la performance des liens en nuage avec les vues matérialisées
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 de vues matérialisées à actualisation rapide.
Prenons l'exemple d'une organisation dans laquelle l'équipe de vente Producer AI Autonomous Database (PRODUCER_DB) stocke des transactions de vente en direct dans une table nommé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 au moyen d'un lien en nuage enregistré et crée une vue matérialisée à actualisation rapide TRUSTED_SALES_MV sur le lien en nuage et interroge les données en direct pour la production de rapports. Après avoir inséré une nouvelle vente de lampe de bureau sur Producer, une actualisation rapide synchronise uniquement la modification à Consumer pour un reporting instantané.
- Le fournisseur crée une table et charge les données de vente initiales.
- Le fournisseur enregistre un lien vers le nuage pour exposer la table.
- Le fournisseur crée un journal des vues matérialisées pour effectuer le suivi des modifications.
- Le fournisseur met à jour l'enregistrement de Cloud Link pour permettre une actualisation rapide.
- Le consommateur crée une vue matérialisée sur le lien Cloud.
- Le consommateur 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 actualisation rapide de la vue matérialisée.
- Le consommateur interroge de nouveau la vue matérialisée pour voir les données mises à jour.
Conditions requises
Avant de mettre en oeuvre l'actualisation incrémentielle pour les vues matérialisées sur les liens en nuage, assurez-vous que les conditions préalables suivantes sont remplies.
- 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 les vues matérialisées.
- La journalisation des vues matérialisées de la base de données du fournisseur est configurée pour les tables de base.
Les sections suivantes décrivent le flux de travail détaillé pour le partage de données entre deux instances Oracle Autonomous AI Database à l'aide de Cloud Link et des vues matérialisées à actualisation rapide 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.
Étape 1 : Créer une table et charger les données de vente initiales
L'équipe de vente crée la table SALES_ALL qui stocke chaque transaction de validation de commande provenant de l'organisation, en saisissant l'ID 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;Étape 2 : Enregistrer le lien vers le nuage
Pour partager les données de vente avec l'équipe d'analyse, l'administrateur de base de données principal enregistre un lien vers le nuage dans la table SALES_ALL. Ce lien en nuage nommé SALES dans l'espace de noms TRUSTED_COMPARTMENT est une fenêtre en lecture seule des données du fournisseur. Comme les bases de données intelligentes autonomes du fournisseur et du consommateur se trouvent dans le même compartiment OCI, l'administrateur de base de données règle la portée à 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;
/Étape 3 : Créer le 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 vue matérialisée sur SALES_ALL. Ce journal capture chaque insertion, mise à jour et suppression, en enregistrant la clé primaire, le ROWID et les informations de 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 de balayer l'ensemble de la table Producer, le consommateur ne peut demander que les modifications depuis la dernière actualisation.
Étape 4 : Mettre à jour le lien vers le nuage pour une actualisation rapide
Avec le journal des vues matérialisées, l'administrateur de base de données met à jour l'enregistrement de Cloud Link pour permettre une 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 Cloud Link permet à tous les consommateurs de bénéficier de mises à jour d'actualisation incrémentielles.
Étape 5 : Créer une vue matérialisée
Dans l'instance Consumer Autonomous AI Database, l'équipe d'analyse crée une vue matérialisée nommée TRUSTED_SALES_MV qui sélectionne toutes les colonnes du lien Cloud. La vue matérialisée est configurée avec REFRESH FAST ON DEMAND, qui utilise le journal des vues matérialisées du fournisseur 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, des jointures et des filtres complexes sur TRUSTED_SALES_MV sans incidence sur le fournisseur. Comme il est configuré pour une actualisation rapide, le consommateur peut rester synchronisé avec le producteur.
Étape 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 retourne les noms de produits, les quantités et les prix unitaires pour des articles tels que Souris sans fil, Chaise ergonomique et 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.
Étape 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 éliminer 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 rangée, en suivant la modification pour la prochaine actualisation de 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 traiter 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.
Étape 8 : Régénérer rapidement la vue matérialisée
La base de données Consumer Autonomous AI Database 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 rangée Lampe de bureau du journal des vues matérialisées du fournisseur.
BEGIN
DBMS_MVIEW.REFRESH('TRUSTED_SALES_MV', 'F');
END;
/Au lieu de relire les dix (ou des milliers) rangées, l'actualisation de la base de données d'intelligence artificielle autonome du consommateur extrait uniquement la nouvelle rangée ajoutée depuis la dernière actualisation.
Étape 9 : Interrogation - 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 sur les ventes sont immédiatement disponibles aux fins de production de rapports.
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'organisation a mis en oeuvre un partage de données avec succès à l'aide d'Oracle Autonomous AI Database Cloud Link et des vues matérialisées à actualisation rapide.
Rubrique parent : Optimiser la performance des liens en nuage avec les vues matérialisées