Je ne sais pas si le problème persiste, mais en lisant l'article que vous avez fourni, j'ai remarqué quelque chose (qui pourrait bien être la solution ici) :
Actualisation ON COMMIT
Une vue matérialisée peut être actualisée automatiquement à l'aide de la méthode ON COMMIT. Par conséquent, chaque fois qu'une transaction est validée et a mis à jour les tables sur lesquelles une vue matérialisée est définie, ces modifications sont automatiquement répercutées dans la vue matérialisée. L'avantage d'utiliser cette approche est que vous n'avez jamais à vous rappeler d'actualiser la vue matérialisée. Le seul inconvénient est que le temps nécessaire pour terminer la validation sera légèrement plus long en raison du traitement supplémentaire impliqué. Cependant, dans un entrepôt de données, cela ne devrait pas poser de problème car il est peu probable que des processus simultanés tentent de mettre à jour la même table.
- Remarquez la ligne en gras.
Alors nous avons :
Tableau 7-1 Méthodes d'actualisation À LA DEMANDE
Description du paramètre d'option d'actualisationCOMPLETE C Actualise en recalculant la requête de définition de la vue matérialisée.
RAPIDE F Actualise en appliquant progressivement les modifications à la vue matérialisée . Pour les vues matérialisées locales, il choisit la méthode d'actualisation qui est estimée par l'optimiseur comme étant la plus efficace. Les méthodes d'actualisation prises en compte sont FAST et FAST_PCT basées sur les journaux.
FAST_PCT P Actualise en recalculant les lignes de la vue matérialisée affectées par les partitions modifiées dans les tables de détail.
FORCER ? Tente une actualisation rapide. Si ce n'est pas possible, il effectue une actualisation complète. Pour les vues matérialisées locales, il choisit la méthode d'actualisation qui est estimée par l'optimiseur comme étant la plus efficace. Les méthodes d'actualisation prises en compte sont basées sur les journaux FAST, FAST_PCT et COMPLETE.
- Remarquez les lignes en gras.
- Personnellement, je préfère l'option FORCE.
Pourriez-vous, s'il vous plaît, dire si cela se reproduit après un certain temps (en fonction des paramètres de la base de données et de la machine sur laquelle elle s'exécute, donc je ne peux même pas vous indiquer combien) ?
Lorsque l'actualisation rapide est possible
Toutes les vues matérialisées ne peuvent pas être actualisées rapidement. Par conséquent, utilisez le package DBMS_MVIEW.EXPLAIN_MVIEW pour déterminer les méthodes d'actualisation disponibles pour une vue matérialisée.
Si vous ne savez pas comment rendre une vue matérialisée rapidement actualisable, vous pouvez utiliser le DBMS_ADVISOR.TUNE_MVIEW procédure, qui fournit un script contenant les instructions requises pour créer une vue matérialisée actualisable rapidement.
Bravo