2008-12-19 13 views
5

Cualquiera que pueda decirme con qué frecuencia se configura una vista materializada para actualizar con la siguiente configuración por favor?oracle materialized view refresh time

FUERZA DE ACTUALIZACIÓN EN LA DEMANDA DE INICIO CON sysdate + 0 NEXT (redonda (sysdate) + 1/24) + 1

Creo que he leído que como cada hora, pero no estoy seguro

Respuesta

7
SQL> alter session set nls_date_format = 'yyyy-mm-dd :hh24:mi:ss'; 

Session changed. 

SQL> select sysdate from dual; 

SYSDATE 
-------------------- 
2008-12-19 :12:18:28 

SQL> select (round(sysdate) + 1/24) + 1 from dual; 

(ROUND(SYSDATE)+1/24 
-------------------- 
2008-12-21 :01:00:00 
4

Para responder a la primera pregunta (¿habrá esta carrera una vez por hora?):

No, este se ejecutará una vez cuando se crea debido a esta cláusula:

START WITH sysdate+0 

Personalmente, creo que el "+0" es extraño, como ahora es ahora.

A continuación se ejecutará mañana a la 1 am, debido a la cláusula siguiente:

NEXT (round(sysdate) + 1/24) + 1 

El "1/24" parte calcula cuando es 01 a.m., ya que las fechas de Oracle se almacenan realmente como números, con el parte decimal que indica horas, minutos, etc. La sintaxis está bien.

+0

1 para una explicación más detallada. Para aclarar aún más, round (sysdate) le da MM/DD/YY @ 12:00:00. + 1/24 (una hora) hace que el valor sea MM/DD/YY @ 01:00:00. +1 (un día) hace que el valor MM/DD + 1/YY 01:00:00. – craig

0

Creo utilizando

NEXT (trunc(sysdate) + 1/24) + 1 

es más preciso