Mview refresh progress
Summary
You can find the refresh progress of a Mview with this script
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
Post a Comment