Une vue matérialisée contient des données duppliquées des tables sources, à la différence des vues qui ne contiennent que les SELECT sur des tables, des vues et des vues maérialisées.
Pour que cela marche il faut que l'utilisateur aie le droit de créer des vues matérialisées.
Le mode d'actualisation des données de la vue (Refresh) est :
COMPLETE : Remplace la totalité des données de la vue par celles de la requête SELECT qui la définie
FAST : Actualise seulement les données modifiées.
FORCE : Fait d'abord un FAST refresh, si cela ne marche pas, il fait un refresh complete.
NEVER : Ne fait jamais de refresh.
et se produit :
On Demand : C'est à la demande de l'utilisateur, ceci peut se faire de différentes manière.
. DBMS_MVIEW.REFRESH : Ceci permet de demander le refresh d'une vue matérialisée.
. DBMS_MVIEW.REFRESH_DEPENDENT : Prend le nom d'une table en paramètre, et permet d'actualiser les vues matérialisées liées à cette table.
. DBMS_MVIEW.REFRESH_ALL_MVIEWS : Actualise toutes les vues matérialisées du schéma.
On commit : A chaque validation des modifications d'une table liée à la vue matérialisée, cette dernière est actualisée.
Exemple simple :
SQL> CREATE MATERIALIZED VIEW V_DEPT_EMP
2 REFRESH COMPLETE
3 ON DEMAND
4 AS
5 SELECT E.FIRST_NAME, E.LAST_NAME, D.DEPARTMENT_NAME
6 FROM EMPLOYEES E
7 INNER JOIN DEPARTMENTS D ON E.DEPARTMENT_ID = D.DEPARTMENT_ID;
Vue matÚrialisÚe crÚÚe.