title: What's the best way to take a "snapshot" of an Oracle database that is constantly being updated?
body: <p>I want to take a consistent snapshot of an Oracle database that is constantly being updated by a TIBCO DB Adaptor.</p>
  
  <p>Typcially TIBCO updates a bunch of tables at once, and then COMMITs.
  If I traverse through all the tables, taking a snapshot once a day, then I could grab data from table A before the commit, and from table B after the commit - but if A and B have a relationship, then they will no longer match properly.</p>
  
  <p>Is "SET TRANSACTION READ ONLY" the way to go?<br>
  e.g.  </p>
  
  <pre><code>COMMIT
  SET TRANSACTION READ ONLY
  SELECT * FROM A WHERE A.ADB_UPDATEDDATE &gt; TODAY()-1 
  SELECT * FROM B WHERE B.ADB_UPDATEDDATE &gt; TODAY()-1 
  etc.
  COMMIT
  </code></pre>
  
  <p>(TODAY syntax might not be correct, not important!)</p>
  
  <p>Or is there something better that I can do?</p>