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).

OK ->today < x.DUE_DATE - y.WARNWarnen ->today >= x.DUE_DATE - y.WARN and today < x.DUE_DATE - y.CRITICALKritisch ->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.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage