2009-09-25 40 views

Respuesta

4

Podría ver indirectamente si una vista materializada se actualiza al observar si un proceso tiene bloqueos adquiridos en ella: una vista materializada debe modificarse solo cuando se actualiza (excepto para las vistas materializadas de ACTUALIZACIÓN utilizadas para la replicación bidireccional).

Esta consulta debe devolver filas sólo cuando éste se actualiza su vista materializada:

vistas
SELECT sid 
    FROM v$lock 
WHERE type = 'TX' 
    AND id1 = (SELECT object_id 
       FROM all_objects 
       WHERE owner = :owner 
       AND object_name = :object_name) 
4

materializadas que se definen a ser refrescada en un horario con" ... que empiezan por ... SIGUIENTE ... "como parte de su DDL se ejecutará bajo control DBMS_JOB. Si la renovación de estos MV está en curso, verá valores para THIS_DATE y THIS_SEC en la vista USER_JOBS (o DBA_JOBS) para el trabajo correspondiente y/o una fila en DBA_JOBS_RUNNING.

Si ha definido que el MV se actualizará a demanda y está iniciando la actualización externamente, la respuesta de Vincent es una forma de determinar el estado.

+0

Gracias por la respuesta. Pero las vistas se actualizan con una tarea java externa. –

5

Usted podría intentar:

SELECT CURRMVOWNER, CURRMVNAME FROM V$MVREFRESH

para obtener la lista de puntos de vista refrescante en este momento.

Cuestiones relacionadas