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

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

    Les vues matérialisées sont basées sur le disque et sont régulièrement mises à jour 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 access.

    Les vues évaluent les données dans les tables sous-jacentes à la définition de vue au moment de la requête. C’est une vue logique de vos tables, sans aucune donnée stockée ailleurs. L’avantage d’une vue est qu’il vous renverra toujours les dernières données. L’inconvénient d’une vue est que ses performances dépendent de la qualité de l’instruction select 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 ne pas fonctionner correctement.

    Les vues matérialisées sont similaires aux vues régulières, car elles constituent une vue logique de vos données (basée sur une instruction select). Toutefois, le jeu de résultats de la requête sous-jacente a été enregistré dans une table. L’avantage 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 au moment de l’actualisation de la vue matérialisée, vous payez le prix de la jointure une fois (ou autant de fois que vous actualisez votre vue matérialisée) que chaque fois que vous sélectionnez dans la vue matérialisée. De plus, avec la réécriture de requêtes activée, Oracle peut optimiser une requête qui sélectionne à partir de la source de votre vue matérialisée de manière à ce qu’elle soit lue à partir de votre vue matérialisée. Dans les situations où vous créez des vues matérialisées sous la forme de tableaux agrégés 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 utilisateur. L’inconvénient est que les données que vous recevez de la vue matérialisée sont uniquement à jour avec la dernière actualisation de la vue matérialisée.

    Les vues matérialisées peuvent être définies pour être actualisées manuellement, sur une planification définie ou sur la firebase database détectant une modification des données d’une des tables sous-jacentes. Les vues matérialisées peuvent être mises à jour de manière incrémentielle en les combinant avec des journaux de vues matérialisés, qui agissent comme des sources de capture de données de modification 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 business intelligence où l’interrogation de tables de faits volumineuses comportant des milliers de millions de lignes entraînerait des temps de réponse aux requêtes entraînant une application inutilisable.

    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 de l’application lorsqu’il n’est pas possible ou souhaitable d’utiliser une vue standard avec des index. Les vues matérialisées peuvent être mises à jour régulièrement, soit à l’aide de déclencheurs, soit à l’aide de l’option ON COMMIT REFRESH . Cela nécessite quelques permissions supplémentaires, mais ce n’est rien de 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 firebase database et écrites sur le disque. Ils sont mis à jour en fonction des parameters 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 masortingcée – requête qui extrait des données de la table sous-jacente

    View: View est juste une requête nommée. Il ne stocke rien. Lorsqu’une requête est affichée, elle exécute la requête de la définition de vue. Les données réelles proviennent du tableau.

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

    Ajout de la réponse complète de Mike McAllister …

    Les vues matérialisées peuvent uniquement être configurées pour être actualisées automatiquement via la firebase database en détectant les modifications lorsque la requête de vue est considérée comme simple par le compilateur. S’il 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 afin de ne mettre à jour que 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 la vue mview et une table portant le même nom , ce qui peut compliquer les choses.

    Une vue n’est rien d’autre qu’une requête SQL, prend la sortie d’une requête et la fait apparaître comme une table virtuelle, qui ne prend aucun espace de stockage ou contient des données

    Mais les vues matérialisées sont des objects de schéma, stockant les résultats d’une requête dans un object de schéma distinct (c.-à-d. Prennent de l’espace de stockage et contiennent des données). Cela indique que la vue matérialisée renvoie une copie physiquement distincte des données de la table