Nie wiem, czy problem nadal występuje, ale gdy spojrzałem na dostarczony przez Ciebie artykuł, zauważyłem coś (co może być tutaj rozwiązaniem):
ODŚWIEŻANIE PRZY POMOCY
Widok zmaterializowany może być odświeżany automatycznie przy użyciu metody ON COMMIT. Dlatego za każdym razem, gdy transakcja zatwierdza, która zaktualizowała tabele, w których zdefiniowany jest widok zmaterializowany, zmiany te są automatycznie odzwierciedlane w widoku zmaterializowanym. Zaletą takiego podejścia jest to, że nigdy nie trzeba pamiętać o odświeżaniu zmaterializowanego widoku. Jedyną wadą jest to, że czas wymagany do zakończenia zatwierdzenia będzie nieco dłuższy ze względu na dodatkowe przetwarzanie. Jednak w hurtowni danych nie powinno to stanowić problemu, ponieważ jest mało prawdopodobne, aby współbieżne procesy próbowały zaktualizować tę samą tabelę.
- Zwróć uwagę na pogrubioną linię.
Następnie mamy:
Tabela 7-1 Metody odświeżania NA ŻĄDANIE
Opcja odświeżania Parametr OpisKOMPLETNE C Odświeża, ponownie obliczając definiujące zapytanie zmaterializowanego widoku.
SZYBKO F Odświeża przez stopniowe wprowadzanie zmian do zmaterializowanego widoku . W przypadku lokalnych widoków zmaterializowanych wybiera metodę odświeżania, którą optymalizator ocenia jako najbardziej wydajną. Rozważane metody odświeżania to FAST i FAST_PCT oparte na logach.
FAST_PCT P Odświeża poprzez ponowne obliczenie wierszy w zmaterializowanym widoku, na który wpływają zmienione partycje w tabelach szczegółów.
SIŁA ? Próbuje szybko odświeżyć. Jeśli nie jest to możliwe, wykonuje pełne odświeżenie. W przypadku lokalnych widoków zmaterializowanych wybiera metodę odświeżania, którą optymalizator ocenia jako najbardziej wydajną. Rozważane metody odświeżania to FAST, FAST_PCT i COMPLETE.
- Zwróć uwagę na pogrubione linie.
- Osobiście wolę opcję SIŁA.
Czy mógłbyś powiedzieć, czy to się powtórzy po pewnym czasie (w zależności od parametrów DB i maszyny, na której działa, więc nie mogę nawet podpowiedzieć, ile)?
Kiedy szybkie odświeżanie jest możliwe
Nie wszystkie zmaterializowane widoki mogą być szybko odświeżane. Dlatego użyj pakietu DBMS_MVIEW.EXPLAIN_MVIEW aby określić, jakie metody odświeżania są dostępne dla zmaterializowanego widoku.
Jeśli nie masz pewności, jak szybko odświeżać widok zmaterializowany, możesz użyć DBMS_ADVISOR.TUNE_MVIEW procedura, która zapewnia skrypt zawierający instrukcje wymagane do utworzenia szybko odświeżalnego zmaterializowanego widoku.
Pozdrawiam