Melhor maneira de executar consultas Oracle periodicamente
Eu preciso saber qual é a melhor prática sobre a execução de uma consulta periodicamente no Oracle (estou usando11g).
No meu caso de uso particular eu tenho umDUE_DATE
especificado na tabelax
. O que eu quero fazer é executar uma consulta às 00:01 todos os dias para calcular o status (OK, Warn, Critical ou Overdue) de alguns registros. O status de um registro específico é calculado a partir da data de hoje (em que 'hoje' é o dia em que a consulta está sendo executada) em relação ax.DUE_DATE
e alguns valores especificados pelo usuário para o que significa "warn" e "critical" (contidos na tabelay
).
today < x.DUE_DATE - y.WARN
Avisar ->today >= x.DUE_DATE - y.WARN and today < x.DUE_DATE - y.CRITICAL
Crítico ->today >= x.DUE_DATE - y.CRITICAL and today <= x.DUE_DATE
Vencido ->today > x.DUE_DATE
Qual é a melhor maneira de executar essa consulta periodicamente? Eu encontrei as seguintes opções, mas não tenho certeza qual é o melhor para o meu caso de uso:
Visualizações materializadasDBMS_SCHEDULER
Eu sei que eu poderia calcular o status dinamicamente a cada solicitação do usuário, mas como os stauses mudam apenas uma vez por dia, achei que seria mais eficiente fazer o cálculo e armazenar em cache o resultado subsequente uma vez por dia também.
Muito obrigado antecipadamente.