Najlepszy sposób okresowego uruchamiania zapytań Oracle
Muszę wiedzieć, jaka jest najlepsza praktyka dotycząca okresowego uruchamiania zapytania w Oracle (używam11g).
W moim konkretnym przypadku mamDUE_DATE
określone w tabelix
. Co chcę zrobić, to uruchomić kwerendę o 00:01 każdego dnia, aby obliczyć status (OK, Ostrzegaj, Krytyczny lub Zaległy) niektórych rekordów. Status konkretnego rekordu jest obliczany od dzisiejszej daty (gdzie „dzisiaj” to dzień uruchomienia zapytania) względemx.DUE_DATE
oraz niektóre wartości określone przez użytkownika, co oznacza „ostrzegaj” i „krytyczny” (zawarte w tabeliy
).
today < x.DUE_DATE - y.WARN
Ostrzegaj ->today >= x.DUE_DATE - y.WARN and today < x.DUE_DATE - y.CRITICAL
Krytyczny ->today >= x.DUE_DATE - y.CRITICAL and today <= x.DUE_DATE
Zaległe ->today > x.DUE_DATE
Jaki jest najlepszy sposób okresowego uruchamiania tego zapytania? Znalazłem następujące opcje, ale nie jestem pewien, co jest najlepsze dla mojego przypadku użycia:
Widoki zmaterializowaneDBMS_SCHEDULER
Wiem, że mógłbym po prostu obliczyć status dynamicznie przy każdym żądaniu użytkownika, ale ponieważ stauzy zmieniają się tylko raz dziennie, pomyślałem, że bardziej efektywnie będzie wykonywać obliczenia i buforować kolejne wyniki raz dziennie.
Z góry bardzo dziękuję.