© Éditions Eyrolles 655
chapitre n° 14 Optimisations
Les requêtes de jointure entre adhérents et l’escrime ou le tennis de table utiliseront la vue à la
place des tables d’une manière bien plus efficace. L’opérateur que vous verrez apparaître dans
vos plans d’exécution est MAT_VIEW REWRITE ACCESS FULL.
Le rafraîchissement automatique nécessite de créer un journal d’opérations par table interrogée.
Les exemples suivants décrivent des vues matérialisées qui seront mises à jour automatiquement.
La première sera actualisée dès la modification de la table Sport. La deuxième le sera tous
les lundis à 15h00.
Tableau 14-68 Création d’une vue matérialisée
Code SQL Commentaires
CREATE MATERIALIZED VIEW adh_escrime_pingpong
TABLESPACE tbs_cluster
BUILD IMMEDIATE
REFRESH COMPLETE
ENABLE QUERY REWRITE
AS SELECT a.adhid, s.spid, s.splibelle,
a.nom, a.prenom, a.tel, a.date_nais, a.solde
FROM Adherentbis a, Sport s, Pratiquebis p
WHERE s.splibelle IN ('Escrime','Ping-pong')
AND a.adhid = p.adhid
AND s.spid = p.spid
ORDER BY a.adhid,a.nom;
Création de la vue matérialisée située dans le
tablespace tbs_cluster.
La construction est immédiate et la vue est
éligible à la réécriture de requête (ENABLE
QUERY REWRITE).
Tableau 14-69 Rafraîchissement automatique
Code SQL Commentaires
CREATE MATERIALIZED VIEW LOG
ON Sport WITH PRIMARY KEY, ROWID;
CREATE MATERIALIZED VIEW catalogue_sports
REFRESH FAST
ON COMMIT
WITH PRIMARY KEY
AS SELECT spid, splibelle FROM
Sport;
Création du journal des opérations.
Création de la vue matérialisée avec une
contrainte primary key (colonne clé primaire de
la table).
Rafraîchissement incrémental (fast) après
modifications sur la table.
CREATE MATERIALIZED VIEW LOG
ON Adherentbis
WITH PRIMARY KEY, ROWID
PURGE REPEAT INTERVAL '5' DAY;
CREATE MATERIALIZED VIEW Adherent_hommes
REFRESH FAST
START WITH ROUND(SYSDATE + 1) + 11/24
NEXT NEXT_DAY(TRUNC(SYS-
DATE),'LUNDI')+15/24
WITH PRIMARY KEY
AS SELECT a.adhid, a.nom, a.prenom,
a.tel, a.date_nais, a.solde
FROM Adherentbis a
WHERE a.civilite = 'Mr.';
Création du journal des opérations qui sera
vidé tous les 5 jours.
Création de la vue matérialisée avec une
contrainte primary key (colonne clé primaire
de la table).
Rafraîchissement incrémental, première
actualisation : le lendemain à 11h puis tous
les lundis à 15h.
SOUTOU Livre Page 655 Lundi, 26. juillet 2010 4:32 16