Quelle est la différence entre Views et Materialized Views dans Oracle ?
Les vues matérialisées sont basées sur le disque et sont mises à jour périodiquement en fonction de la définition de la requête.
Les vues sont uniquement virtuelles et exécutent la définition de la requête à chaque fois qu'on y accède.
Une vue utilise une requête pour extraire des données des tables sous-jacentes.
Une vue matérialisée est une table sur le disque qui contient le jeu de résultats d'une requête.
Les vues matérialisées sont principalement utilisées pour augmenter les performances des applications lorsqu'il n'est pas possible ou souhaitable d'utiliser une vue standard à laquelle on applique des index. Les vues matérialisées peuvent être mises à jour régulièrement, soit par le biais de déclencheurs, soit en utilisant l'option ON COMMIT REFRESH
. Cette dernière nécessite quelques autorisations supplémentaires, mais elle n’est pas complexe. L'option ON COMMIT REFRESH
est en place depuis au moins Oracle 10.
Les vues sont essentiellement des structures logiques de type tableau, alimentées à la volée par une requête donnée. Les résultats d'une requête de vue ne sont pas stockés sur le disque et la vue est recréée chaque fois que la requête est exécutée. Les vues matérialisées sont des structures réelles stockées dans la base de données et écrites sur le disque. Elles sont mises à jour en fonction des paramètres définis lors de leur création.