title: Oracle - What happens when refreshing a 'REFRESH FORCE ON DEMAND' view with DBMS_MVIEW.REFRESH
body: <p>I have the following materialized view - </p>
  
  <pre><code>CREATE MATERIALIZED VIEW TESTRESULT 
  ON PREBUILT TABLE WITH REDUCED PRECISION
  REFRESH FORCE ON DEMAND
  WITH PRIMARY KEY
  AS 
  SELECT...
  FROM...
  WHERE...
  </code></pre>
  
  <p>This materialized view has no backing MATERIALIZED VIEW LOG.  As seen in the clause above this MV has "ON DEMAND" specifies, and according to Oracle documentation,</p>
  
  <blockquote>
    <p>"[ON DEMAND] indicate[s] that the materialized
    view will be refreshed on demand by
    calling one of the three DBMS_MVIEW
    refresh procedures."</p>
  </blockquote>
  
  <p>When I call DBMS_MVIEW.REFRESH('TESTRESULT') , what is occuring?  Is it manually checking each record to see if it has been updated?</p>
  
  <p>Oracle Version: 10g</p>