Jeg ved ikke, om problemet stadig vedvarer, men da jeg kiggede på artiklen, du angav, bemærkede jeg noget (som måske bare er løsningen her):
ON COMMIT Refresh
En materialiseret visning kan opdateres automatisk ved hjælp af ON COMMIT-metoden. Derfor, når en transaktion commit, som har opdateret tabellerne, som en materialiseret visning er defineret på, afspejles disse ændringer automatisk i den materialiserede visning. Fordelen ved at bruge denne tilgang er, at du aldrig behøver at huske at genopfriske den materialiserede visning. Den eneste ulempe er, at den tid, der kræves for at fuldføre forpligtelsen, vil være lidt længere på grund af den ekstra behandling, der er involveret. Men i et datavarehus bør dette ikke være et problem, fordi der er usandsynligt, at der vil være samtidige processer, der forsøger at opdatere den samme tabel.
- Bemærk den fede linje.
Så har vi:
Tabel 7-1 ON DEMAND opdateringsmetoder
Opdater Option Parameter BeskrivelseFULDSTÆNDIG C Opdaterer ved at genberegne den definerende forespørgsel af den materialiserede opfattelse.
HURTIG F Opdaterer ved trinvist at anvende ændringer på den materialiserede visning . For lokale materialiserede visninger vælger den den opdateringsmetode, som af optimeringsværktøjet vurderes at være mest effektiv. De overvejede opdateringsmetoder er log-baserede FAST og FAST_PCT.
FAST_PCT P Opdateres ved at genberegne rækkerne i den materialiserede visning, der er påvirket af ændrede partitioner i detaljetabellerne.
KRAFT ? Forsøger en hurtig opdatering. Hvis det ikke er muligt, foretager den en fuldstændig opdatering. For lokale materialiserede visninger vælger den den opdateringsmetode, som af optimeringsværktøjet vurderes at være mest effektiv. De overvejede opdateringsmetoder er logbaserede FAST, FAST_PCT og COMPLETE.
- Bemærk de fede linjer.
- Jeg foretrækker personligt FORCE-indstillingen.
Kan du fortælle, om dette sker igen efter et stykke tid (afhængigt af parametrene for DB'en og den maskine, den kører på, så jeg kan ikke engang antyde, hvor meget)?
Når hurtig opdatering er mulig
Ikke alle materialiserede visninger kan hurtigt opdateres. Brug derfor pakken DBMS_MVIEW.EXPLAIN_MVIEW for at bestemme, hvilke opdateringsmetoder der er tilgængelige for en materialiseret visning.
Hvis du ikke er sikker på, hvordan du gør en materialiseret visning hurtig opdateret, kan du bruge DBMS_ADVISOR.TUNE_MVIEW procedure, som giver et script, der indeholder de udsagn, der kræves for at skabe en hurtig genopfriskende materialiseret visning.
Skål