J'ai besoin de modifier la requête de vue matérialisée. Il est possible de faire la même chose sans la lâcher et la recréer.Modifier la requête de vue matérialisée
Répondre
Vous Might pouvoir utiliser le MV existant comme source d'un prebuilt table for the new MV
Beaucoup dépend de ce que vous faites à la requête bien sûr. Si vous ajoutez une colonne, par exemple, vous devez tout actualiser pour obtenir sa nouvelle valeur.
PS. Le moyen rapide de transformer le MV existant en une table serait l'échange de partition, mais faites attention à gotchas. Ensuite, vous manipulez la table pour correspondre au nouveau jeu de résultats et créez le nouveau MV basé sur la table manipulée.
Vous pouvez laisser la mview en place. Si votre souci est de minimiser les temps d'arrêt pendant que le nouveau mview instancie (parce que vous n'avez pas utilisé de table prédéfinie), vous pouvez faire ce qui suit.
- Créer une nouvelle table appelée mview_1 sur la table préconstruits
- Une fois qu'il vous a été créé peut laisser tomber l'ancien
- créer ou remplacer vue mview que select * from mview_1
Maintenant, chaque fois que vous avez besoin de reconstruire vous serez capable de le faire avec peu ou pas de temps d'arrêt puisque vous pouvez simplement pointer la vue vers la nouvelle table/mview à l'avenir.
Pour les conditions où vous n'êtes pas sûr que le MVIEW existe ou non (ce qui est ce que CREATE OR REPLACE est vraiment bon pour), j'utilise;
BEGIN
EXECUTE IMMEDIATE 'DROP MATERIALIZED VIEW name_of_mview';
EXCEPTION
WHEN OTHERS THEN
IF SQLCODE = -12003 THEN
dbms_output.put_line('MVIEW does not exist, which was somewhat expected');
ELSE
RAISE;
END IF;
END;
/
CREATE MATERIALIZED VIEW name_of_mview ... AS SELECT ...
Non, vous ne pouvez pas modifier la requête d'une vue matérialisée sans la supprimer.
La syntaxe CREATE MATERIALIZED VIEW ne prend pas en charge cette fonctionnalité.
Le ALTER MATERIALIZED VIEW permet de modifier une vue existante matérialisée dans un ou plusieurs des façons suivantes:
- Pour modifier ses caractéristiques de stockage
- Pour changer sa méthode de rafraîchissement, le mode ou le temps
- de modifier sa structure de sorte qu'il est un autre type de vue matérialisée
- Pour activer ou désactiver la requête réécrire
Voir Oracle 12c Release 1 Manuel pour:
CREATE MATERIALIZED syntaxe VIEW: http://docs.oracle.com/cd/E16655_01/server.121/e17209/statements_6002.htm#i2145767
ALTER MATERIALIZED syntaxe VIEW: http://docs.oracle.com/cd/E16655_01/server.121/e17209/statements_2002.htm#SQLRF00808
- 1. Vue matérialisée ou CDC?
- 2. Comment tester la vue matérialisée dans Java
- 3. Vue matérialisée d'actualisation Oracle - Erreur de compilation
- 4. Problème avec le résultat de la requête matérialisée - LINQ
- 5. Optimisation de requête/base de données: comment optimiser ceci? (et devrais-je utiliser une vue matérialisée?)
- 6. Index de texte Oracle en haut d'une vue matérialisée
- 7. Qu'est-ce que PCT pour une vue matérialisée?
- 8. Modifier la taille de vue
- 9. Modifier la taille de la vue MPMoviePlayerController
- 10. Oracle Visualisation matérialisée Visualisation de l'heure
- 11. Android: Modifier la vue de l'onglet
- 12. Cette méthode est pas prise en charge contre un résultat de la requête matérialisée
- 13. Erreur 360: Impossible de modifier la table ou vue utilisée dans la sous-requête
- 14. Modifier la requête linq comment?
- 15. Macro Modifier/Protection de vue
- 16. L'informix a-t-il une vue matérialisée ou une synchronisation de table DB?
- 17. SharePoint 2010: modifier une vue
- 18. Modifier VS2008 pour utiliser la vue C#
- 19. Modifier la vue ExpandableList par programme
- 20. Sélection d'une ligne pour modifier la vue
- 21. Modifier la vue de la table (style de table de vue groupée) couleur de fond?
- 22. Android: Modifier une vue similaire à la vue modifier des contacts
- 23. Modifier la requête POST dans mod_perl2
- 24. Accrocher et modifier la requête ajax
- 25. Modifier la requête sql dans asp.net?
- 26. Modifier dynamiquement la vue à l'intérieur de la vue dans Android
- 27. Modifier la requête SQL du rapport
- 28. addSubview modifier le cadre de vue ajouté
- 29. Comment modifier par programme UIColor de vue
- 30. modifier la position de l'arrière-plan en utilisant la requête
Downtime peut être nul si vous pointez vos requêtes et votre code vers un synonyme (ou une vue standard) et passez de la wro ng vue matérialisée à la nouvelle (et à l'arrière quand vous devez le modifier à nouveau). La création de la vue matérialisée peut prendre tout le temps dont elle a besoin, il suffit de changer le pointeur lorsqu'elle est prête en quelques millisecondes. –