title: Compare two tables with minus operation in oracle
body: <p>Some tables' data need to be updated(or deleted , inserted) in my system.
  But I want to know which data are updated,deleted and inserted.
  So before the data are changed ,I will backup the table in different schema 
  just like this:</p>
  
  <pre><code>create table backup_table as select * from schema1.testtable
  </code></pre>
  
  <p>and after the data are changed,I want to find the difference between backup_table 
  and testtable ,and I want to save the difference into a table in the backup schema.</p>
  
  <p>the sql I will run is like this:</p>
  
  <pre><code> CREATE TABLE TEST_COMPARE_RESULT
   AS
   SELECT 'BEFORE' AS STATUS, T1.*
   FROM (
          SELECT * FROM backup_table
          MINUS
          SELECT * FROM schema1.testtable
   ) T1
   UNION ALL
   SELECT 'AFTER' AS STATUS, T2.*
   FROM (
          SELECT * FROM schema1.testtable
          MINUS
          SELECT * FROM backup_table
    ) T2
  </code></pre>
  
  <p>What I am worried about is that I heared about that the minus operation will use 
  a lot of system resource.In my sysytem, some table size will be over 700M .So I want to 
  know how oracle will read the 700M data in memory (PGA??) or the temporary tablespace?
  and How I should make sure that the resource are enough to to the compare operation?</p>