GV$ARCHIVE_GAP definition in Oracle Database 11.2
GV$ARCHIVE_GAP

select
  USERENV('Instance'),                     -- INST_ID NUMBER
  high.thread#,                            -- THREAD# NUMBER
  low.lsq,                                 -- LOW_SEQUENCE# NUMBER
  high.hsq                                 -- HIGH_SEQUENCE# NUMBER
from
  (
  select
    a.thread#,
    rcvsq,
    min(a.sequence#)-1 hsq
  from
    v$archived_log a,
    (
    select
      thread#,
      resetlogs_change#,
      max(sequence#) rcvsq
    from
      v$log_history
    where
      (thread#, resetlogs_change#) in (
      select
        thread#,
        max(resetlogs_change#)
      from
        v$log_history
      group by
        thread#)
    group by
      thread#,
      resetlogs_change# ) b
  where
    a.thread# = b.thread# and a.resetlogs_change# = b.resetlogs_change# and a.sequence# > rcvsq
  group by
    a.thread#,
    rcvsq) high, (
  select
    srl_lsq.thread#,
    nvl(lh_lsq.lsq, srl_lsq.lsq) lsq
  from
    (
    select
      thread#,
      min(sequence#)+1 lsq
    from
      v$log_history,
      v$datafile
    where
      checkpoint_change# <= next_change# and checkpoint_change# >= first_change# and enabled = 'READ WRITE'
    group by
      thread#) lh_lsq, (
    select
      thread#,
      max(sequence#)+1 lsq
    from
      v$log_history
    where
      (
      select
        min(checkpoint_change#)
      from
        v$datafile
      where
        enabled = 'READ WRITE') >= next_change#
    group by
      thread#) srl_lsq
  where
    srl_lsq.thread# = lh_lsq.thread#(+) ) low
where
  low.thread# = high.thread# and lsq < = hsq and hsq > rcvsq

home |  up