Ce document contient une introduction aux vues matérialisées en SQL, destiné aux étudiants universitaires. Il couvre les notions suivantes:
- Les options de création et de rafraîchissement des vues matérialisées.
- La syntaxe SQL pour créer des vues matérialisées et des journaux de modifications.
- Les étapes pour créer et tester des vues matérialisées à partir d'un schéma donné.
Exercices TP Travaux Pratiques SQL -BI - business intelligence
Télécharger PDFOptions de Rafraîchissement des Vues Matérialisées
Les vues matérialisées peuvent être rafraîchies de différentes manières en fonction des besoins spécifiques. Voici les options disponibles :
- IMMEDIATE : Création de la vue matérialisée et population de la vue.
- DEFERRED : Création de la vue matérialisée sans être alimentée en données. La commande
DBMS_MVIEW.REFRESH(alimente la vue.) - ON COMMIT : Rafraîchissement à chaque fin de transaction modifiant les tables sources.
- ON DEMAND : Rafraîchissement avec
DBMS_MVIEW.REFRESH. - COMPLETE : Recalcul complet de la vue.
- FAST : Application d'un rafraîchissement incrémental.
- FORCE : FAST si possible, COMPLETE sinon.
- NEVER : Pas de rafraîchissement.
Pour le cas FAST, un fichier de journalisation des données modifiées doit être créé à cet effet, on parle de MATERIALIZED VIEW LOG (tables "MLOG$_*"). La syntaxe SQL est :
SQL> CREATE MATERIALIZED VIEW LOG ON ;
Ceci ayant pour effet de créer une table MLOG$_T sur le host courant, une table qui contiendra à dater de cet instant toutes les modifications des lignes de la table T.
Travail à Faire
A partir du schéma du TP1 :
- Créer une vue matérialisée VM1 contenant les opérations de retrait ayant eu lieu en janvier 2018 (CodeOp, DateOp) en utilisant les options (IMMEDIATE, COMPLETE, ON DEMAND).
- Créer une vue matérialisée VM2 identique à VM1, en utilisant les options (IMMEDIATE, FAST, ON DEMAND).
- Tester les répercussions des mises à jour de la base de données, sur les deux vues.
FAQ
Qu'est-ce qu'une vue matérialisée ?
Une vue matérialisée est une table physique qui contient les résultats d'une requête SQL. Elle est utilisée pour améliorer les performances des requêtes complexes en stockant les résultats pré-calculés.
Quelle est la différence entre COMPLETE et FAST ?
COMPLETE recalcule entièrement la vue matérialisée, tandis que FAST applique un rafraîchissement incrémental en utilisant un journal des modifications.
Pourquoi utiliser un MATERIALIZED VIEW LOG ?
Le MATERIALIZED VIEW LOG est utilisé pour suivre les modifications des tables sources, permettant ainsi un rafraîchissement incrémental plus rapide et efficace.