2011-05-23 4 views
2

Comment mettre à jour une vue matérialisée? Y at-il un inconvénient à mettre à jour les vues matérialisées? Je suis dans une situation où je peux soitOracle - Mise à jour des vues matérialisées

  1. Mise à jour de la vue matérialisée (OR)
  2. Copiez les dossiers à une autre table, les mettre à jour, tronquer ou supprimer la table de vue matérialisée, insérer les enregistrements mises à jour dans la vue matérialisée.

Ces deux options tournent autour de la longue durée requise pour reconstruire la vue matérialisée (littéralement 5+ jours).

Version: Oracle 10g

+0

Vous ne pouvez pas exécuter un 'UPDATE' SQL par rapport à une vue matérialisée autant que je sache. –

+0

Ce qui n'a pas fonctionné avec la suggestion que j'ai faite dans votre autre question sur ce sujet: http://stackoverflow.com/questions/6046502/oracle-materialized- view-alter-structure-so-lent/6047579 # 6047579 – DCookie

+0

@DCookie - Mon ignorance lol. Je pensais que j'aurais des problèmes à mettre à jour la table MV même après avoir laissé tomber le MV "container", mais je l'ai testé et je n'ai aucun problème à mettre à jour la table après avoir laissé tomber la table associée. – contactmatt

Répondre

2

L'intention d'une vue matérialisée est de stocker les résultats d'une requête en cours d'exécution long et complexe que le mécanisme de réécriture de requête peut utiliser pour gagner beaucoup de temps. On dirait que le sql utilisé pour construire le MV a besoin de tweeking.

Vous ne pouvez pas mettre à jour un MV, à moins que vous vouliez faire un rafraîchissement/régénération complet/rapide.

À quoi sert le temps pendant le rafraîchissement du MV? Avez-vous vérifié les rapports d'addm? Avez-vous configuré des actualisations complètes ou rapides? Que voulez-vous dire par «UPDATE»?

+0

Il est réglé sur REFRESH FORCE ON DEMAND. Je ne suis pas certain à 100%, mais je crois que notre client le rafraîchit périodiquement via un job Oracle – contactmatt

Questions connexes