Différence entre vue et vue matérialisée

Différence entre vue et vue matérialisée

Voir vs vue matérialisée

Les vues et les vues matérialisées (MViews) sont deux types d'objets de base de données Oracle. Ces deux objets se réfèrent aux requêtes sélectionnées. Ces requêtes sélectionnées agissent comme des tables virtuelles. Normalement, les vues et les mviews référent les grandes requêtes de sélection, qui ont un ensemble de jointures. Par conséquent, l'un des principaux avantages des vues est, nous pouvons stocker des requêtes de sélection complexes comme vues. Par conséquent, nous pouvons masquer la logique derrière les requêtes sélectionnées de ses utilisateurs finaux. Lorsque nous devons exécuter l'instruction SELECT complexe, nous devons simplement exécuter

                      Sélectionner * dans ViewName

Voir

Comme mentionné précédemment, View est une table virtuelle, qui cache une requête sélectionnée. Ces requêtes sélectionnées ne sont pas pré-exécutées. Lorsque nous exécutons une instruction SELECT à partir d'une vue, il exécute l'instruction SELECT qui se trouve à l'intérieur du corps de vue. Supposons que l'énoncé de sélection du corps de vue comme une déclaration très complexe. Ainsi, lorsqu'il est exécuté, il faut du temps pour exécuter (relativement plus de temps). De plus, View utilise un très petit espace pour se stocker. C'est parce qu'il n'a qu'une instruction sélectionnée comme contenu.

Vue matérialisée (mview)

Ceci est un type de vue spécial. Les mviews sont créés lorsque nous avons des problèmes de performances avec les vues. Lorsque nous créons un MView, il exécute sa requête sélectionnée et stocke sa sortie en tant que table instantanée. Lorsque nous demandons des données à MView, il n'a pas besoin de réexécuter son instruction SELECT. Il donne la sortie de sa table instantanée. Par conséquent, le temps d'exécution de MView est inférieur à la vue (pour la même instruction SELECT). Cependant, MViews ne peut pas être utilisé tous les temps, car il montre la même sortie, qui est stockée comme une table instantanée. Nous devons actualiser le Mview pour obtenir son dernier ensemble de résultats.

Quelle est la différence entre Afficher et mview?

1. MView stocke toujours sa sortie en tant que table instantanée lors de sa création, mais la vue ne crée pas de tables.

2. La vue n'a pas besoin d'espace pour stocker son contenu, mais MView a besoin d'espace relativement plus grand qu'une vue pour stocker son contenu (comme une table instantanée). 

3. La vue prend un temps d'exécution plus important, mais MView prend un temps d'exécution plus petit que les vues (pour la même instruction SELECT).

4. Mviews doit être rafraîchi pour obtenir ses dernières données, mais les vues donnent toujours ses dernières données.

5. Le schéma a besoin «Créer une vue matérialisée» privilège de créer des mviews et pour les vues, il a besoin «Créer une vue» privilège.

6. Les index peuvent être créés sur MViews pour gagner plus de performances, mais les index ne peuvent pas être créés sur les vues.