Question

Quelle est la différence entre les vues et les vues matérialisées dans Oracle?

Était-ce utile?

La solution

Les vues matérialisées sont basées sur un 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 accès.

Autres conseils

Vues

Ils évaluent les données des tables sous-jacentes à la définition de la vue au moment où la vue est interrogée . C’est une vue logique de vos tables, sans aucune donnée stockée ailleurs.

L'avantage d'une vue est qu'elle vous renverra toujours les dernières données . L'inconvénient d'une vue est que ses performances dépendent de la qualité de la déclaration sur laquelle la vue est basée. Si l'instruction select utilisée par la vue joint plusieurs tables ou utilise des jointures basées sur des colonnes non indexées, la vue risque de mal fonctionner.

Vues matérialisées

Elles ressemblent aux vues classiques, en ce qu’elles constituent une vue logique de vos données (basée sur une instruction select). Cependant, le jeu de résultats de la requête sous-jacente a été enregistré dans une table . L'avantage de ceci est que lorsque vous interrogez une vue matérialisée, vous interrogez une table , qui peut également être indexée.

De plus, comme toutes les jointures ont été résolues lors de l'actualisation de la vue matérialisée, vous payez le prix de la jointure une fois (ou aussi souvent que vous actualisez votre vue matérialisée), plutôt que chaque fois que vous sélectionnez dans la vue matérialisée. De plus, avec la réécriture de requête activée, Oracle peut optimiser une requête qui est sélectionnée à partir de la source de votre vue matérialisée, de telle sorte qu'elle puisse être lue à partir de votre vue matérialisée. Dans les cas où vous créez des vues matérialisées sous la forme de tables d'agrégats ou de copies de requêtes fréquemment exécutées, cela peut considérablement accélérer le temps de réponse de votre application d'utilisateur final. Le désavantage, c’est que les données que vous récupérez de la vue matérialisée sont aussi à jour que la dernière actualisation de la vue matérialisée .

Les vues matérialisées peuvent être configurées pour s'actualiser manuellement, selon une planification définie ou en fonction de la base de données détectant une modification des données provenant de l'une des tables sous-jacentes . Les vues matérialisées peuvent être mises à jour progressivement en les combinant avec des journaux de vues matérialisées, qui servent de sources de capture de données modifiées sur les tables sous-jacentes.

Les vues matérialisées sont le plus souvent utilisées dans les applications d'entreposage de données et de veille stratégique, où l'interrogation de tables de faits volumineuses contenant des milliers de millions de lignes entraînerait des temps de réponse aux requêtes qui rendaient une application inutilisable.

Les vues matérialisées aident également à garantir un moment cohérent, similaire à la isolation des instantanés .

Une vue utilise une requête pour extraire des données des tables sous-jacentes.

Une vue matérialisée est une table sur disque contenant l'ensemble 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 ni faisable ni souhaitable d'utiliser une vue standard à laquelle sont appliqués des index. Les vues matérialisées peuvent être mises à jour régulièrement, par le biais de déclencheurs ou de l'option ON COMMIT REFRESH . Cela nécessite quelques autorisations supplémentaires, mais ce n'est pas complexe. ON COMMIT REFRESH est en place depuis au moins Oracle 10.

Les vues sont essentiellement des structures logiques de type table remplies à la volée par une requête donnée. Les résultats d'une requête de vue ne sont stockés nulle part 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. Ils sont mis à jour en fonction des paramètres définis lors de leur création.

Vue matérialisée : une table sur un disque contenant le jeu de résultats d'une requête

Vue non matérialisée : requête qui extrait des données de la table sous-jacente

.

Afficher: l'affichage n'est qu'une requête nommée. Il ne stocke rien. Lorsqu'une requête est affichée, la requête de la définition de vue est exécutée. Les données réelles proviennent de la table.

Vues matérialisées: stocke les données physiquement et les met à jour périodiquement. Lors de l’interrogation de MV, il donne les données de MV.

Ajout de la réponse détaillée de Mike McAllister ...

Les vues matérialisées ne peuvent être configurées que pour actualiser automatiquement dans la base de données en détectant les modifications lorsque la requête de vue est considérée comme simple par le compilateur. Si cela est considéré comme trop complexe, il ne sera pas en mesure de configurer des déclencheurs essentiellement internes pour suivre les modifications dans les tables source et mettre uniquement à jour les lignes modifiées dans la table mview.

Lorsque vous créez une vue matérialisée, vous constaterez qu'Oracle crée à la fois le mview et une table portant le même nom , ce qui peut rendre les choses confuses.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top