title: Optimizing suggestions needed for a SQL UPDATE statment. Two ~5 million record tables being used
body: <p>I'm looking for any suggestions to optimize the following PROC SQL statement from a SAS program. The two tables involved contain around 5 million records each and the runtime is about 46 hours.   </p>
  
  <p>The statement is looking to update a "new" version of the "old" table. Noting a column if the "old" table, for a "PK_ID", was listed without a value for "3RD_ID" and "CODE", but in the "new" table, for a "PK_ID", it is now listed WITH a value for "3RD_ID" and "CODE".</p>
  
  <p>Thanks for any suggestions...  (The code is really formatted below! For some reasons my spaces aren't showing for indents...)  </p>
  
  <pre><code>PROC SQL _METHOD;  
   UPDATE NEW_TABLE AS N  
     SET NEW_2ND_ID=(SELECT 2ND_ID FROM OLD_TABLE AS O  
                  WHERE N.PK_ID=0.PK_ID  
                    AND N.2ND_ID&lt;&gt;O.2ND_ID  
                    AND O.3RD_ID IS NULL  
                    AND O.CODE IS NULL  
                    AND N.3RD_ID IS NOT NULL  
                    AND N.CODE IS NOT NULL  
                    AND N.2ND_ID IS NOT NULL)  
          WHERE N.3RD_ID IS NOT NULL  
            AND N.PK_ID IS NOT NULL  
            AND N.CODE IS NOT NULL  
            AND N.2ND_ID IS NOT NULL;  
  QUIT;   
  </code></pre>