Die beste Möglichkeit, Oracle-Abfragen in regelmäßigen Abständen auszuführen
Ich muss wissen, was die beste Vorgehensweise beim regelmäßigen Ausführen einer Abfrage unter Oracle ist (ich verwende11g).
In meinem speziellen Anwendungsfall habe ich eineDUE_DATE
in der Tabelle angegebenx
. Ich möchte jeden Tag um 00:01 Uhr eine Abfrage ausführen, um den Status (OK, Warnen, Kritisch oder Überfällig) einiger Datensätze zu berechnen. Der Status eines bestimmten Datensatzes wird ab dem heutigen Datum (wobei "heute" der Tag ist, an dem die Abfrage ausgeführt wird) relativ zu berechnetx.DUE_DATE
und einige benutzerdefinierte Werte für "warnen" und "kritisch" (in der Tabelle enthalten)y
).
today < x.DUE_DATE - y.WARN
Warnen ->today >= x.DUE_DATE - y.WARN and today < x.DUE_DATE - y.CRITICAL
Kritisch ->today >= x.DUE_DATE - y.CRITICAL and today <= x.DUE_DATE
Überfällig ->today > x.DUE_DATE
Wie kann diese Abfrage am besten in regelmäßigen Abständen ausgeführt werden? Ich habe die folgenden Optionen gefunden, bin mir jedoch nicht sicher, welche für meinen Anwendungsfall am besten geeignet ist:
Materialisierte AnsichtenDBMS_SCHEDULER
Ich weiß, dass ich den Status nur dynamisch bei jeder Benutzeranforderung berechnen kann, aber da sich die Pausen nur einmal am Tag ändern, dachte ich, es wäre effizienter, die Berechnung durchzuführen und das nachfolgende Ergebnis auch einmal am Tag zwischenzuspeichern.
Vielen Dank im Voraus.