Mview refresh progress

Summary 

You can find the refresh progress of a Mview with this script


SELECT  CURRMVOWNER_KNSTMVR || '.' || CURRMVNAME_KNSTMVR 
               "MVIEW BEING REFRESHED",
           DECODE( REFTYPE_KNSTMVR, 1, 'FAST', 2, 'COMPLETE', 'UNKNOWN' ) REFTYPE,
           DECODE(GROUPSTATE_KNSTMVR, 1, 'SETUP', 2, 'INSTANTIATE', 
                                      3, 'WRAPUP', 'UNKNOWN' ) STATE,
           TOTAL_INSERTS_KNSTMVR INSERTS,
           TOTAL_UPDATES_KNSTMVR UPDATES,
           TOTAL_DELETES_KNSTMVR DELETES
   FROM X$KNSTMVR X
   WHERE type_knst=6 AND 
         EXISTS (SELECT 1 FROM v$session s 
                 WHERE s.SID=x.sid_knst AND 
                       s.serial#=x.serial_knst);

SELECT l.SID, 
          DECODE( COUNT(*), 0, 'No purge in progress', 
                               'Purge is in progress' ) State
   FROM v$lock l, DBMS_LOCK_ALLOCATED la
   WHERE l.TYPE='UL' AND 
         l.lmode=6 AND
         l.id1=la.lockid AND
         la.NAME='ORA$DEF$EXE$PurgeCommonLock'
   GROUP BY l.SID;

SELECT l.SID, 
          DECODE( COUNT(*), 0, 'No propagation in progress', 
                               'Propagation in progress' ) State
   FROM v$lock l, DBMS_LOCK_ALLOCATED la
   WHERE l.TYPE='UL' AND 
         l.lmode=4 AND
         l.id1=la.lockid AND
         la.NAME='ORA$DEF$EXE$PushCommonLock'
   GROUP BY l.SID;

SELECT /*+ RULE */ o.owner, o.object_name mview, username, s.SID 
   FROM v$lock l, dba_objects o, v$session s 
   WHERE o.object_id=l.id1 AND 
         l.TYPE='JI' AND 
         l.lmode=6   AND 
         s.SID=l.SID AND 
         o.object_type='TABLE'; 

Comments

Popular posts from this blog

Reboot Exadata Machine

ORA-01565: error in identifying file '?/dbs/spfile@.ora'

STEPS TO troubleshoot long running concurrent request in R12.2.x