Oracle
 sql >> Base de données >  >> RDS >> Oracle

Que sont les vues matérialisées ?

Bien sûr.

Une vue normale est une requête qui définit une table virtuelle - vous n'avez pas réellement les données dans la table, vous les créez à la volée en les exécutant.

Une vue matérialisée est une vue dans laquelle la requête est exécutée et les données sont enregistrées dans une table réelle.

Les données de la vue matérialisée sont actualisées lorsque vous le lui demandez.

Quelques cas d'utilisation :

  • Nous avons plusieurs instances Oracle où nous voulons avoir les données de base sur une instance et une copie raisonnablement actuelle des données sur les autres instances. Nous ne voulons pas supposer que les liens de base de données entre eux seront toujours opérationnels. Nous avons donc mis en place des vues matérialisées sur les autres instances, avec des requêtes comme select a,b,c from [email protected] et dites-leur de se rafraîchir quotidiennement.

  • Les vues matérialisées sont également utiles dans la réécriture des requêtes. Disons que vous avez une table de faits dans un entrepôt de données avec chaque livre jamais emprunté à une bibliothèque, avec des dates et des emprunteurs. Et ce personnel veut régulièrement savoir combien de fois un livre a été emprunté. Créez ensuite une vue matérialisée sous la forme select book_id, book_name, count(*) as borrowings from book_trans group by book_id, book_name , réglez-la sur la fréquence de mise à jour souhaitée, généralement la fréquence de mise à jour de l'entrepôt lui-même. Maintenant, si quelqu'un exécute une requête comme celle-ci pour un livre particulier sur le book_trans table, la capacité de réécriture de requête dans Oracle sera assez intelligente pour regarder la vue matérialisée plutôt que de parcourir les millions de lignes dans book_trans .

Habituellement, vous créez des vues matérialisées pour des raisons de performances et de stabilité - des réseaux instables ou de longues requêtes en dehors des heures de travail.