Oracleで定期的にクエリを実行することに関するベストプラクティスを知る必要があります(私は11gを使用しています)。
私の特定のユースケースではDUE_DATE
、テーブルで指定されていますx
。私がやりたいのは、毎日00:01にクエリを実行して、いくつかのレコードのステータス(OK、警告、クリティカル、または期限切れ)を計算することです。特定のレコードのステータスは、今日の日付(「today」はクエリが実行されている日)x.DUE_DATE
と、「warn」および「critical」(テーブルに含まれるy
)を意味するユーザー指定の値から計算されます。
- OK->
today < x.DUE_DATE - y.WARN
- 警告->
today >= x.DUE_DATE - y.WARN and today < x.DUE_DATE - y.CRITICAL
- クリティカル->
today >= x.DUE_DATE - y.CRITICAL and today <= x.DUE_DATE
- 延滞->
today > x.DUE_DATE
このクエリを定期的に実行する最良の方法は何ですか?次のオプションを見つけましたが、どちらが私のユースケースに最適かわかりません。
ユーザーのリクエストごとに動的にステータスを計算できることは知っていますが、stausesは1日1回しか変更されないため、計算を実行して後続の結果を1日1回キャッシュする方が効率的だと思いました。
よろしくお願いします。