So, which one performs better? -----Original Message----- From: oracle-l-bounce@xxxxxxxxxxxxx [mailto:oracle-l-bounce@xxxxxxxxxxxxx] On Behalf Of Wolfgang Breitling Sent: Thursday, July 26, 2007 6:22 AM To: oracle-l Subject: Need another pair(s) of eyes Hi, or probably more accurately a few more brains. I think the following are equivalent: do something (select, update, delete) where < some predicates> and exists ( select 'x' from tableA, tableB where < some regular predicates > and < some correlated predicates > UNION ALL select 'x' from tableC, tableD (could be same as A and/or B) where < some regular predicates > and < some correlated predicates > ) and do something (select, update, delete) where < some predicates> and ( exists ( select 'x' from tableA, tableB where < some regular predicates > and < some correlated predicates > ) OR exists ( select 'x' from tableC, tableD (could be same as A and/or B) where < some regular predicates > and < some correlated predicates > ) ) Likewise for not exists: do something (select, update, delete) where < some predicates> and not exists ( select 'x' from tableA, tableB where < some regular predicates > and < some correlated predicates > UNION ALL select 'x' from tableC, tableD (could be same as A and/or B) where < some regular predicates > and < some correlated predicates > ) vs. do something (select, update, delete) where < some predicates> and not exists ( select 'x' from tableA, tableB where < some regular predicates > and < some correlated predicates > ) AND not exists ( select 'x' from tableC, tableD (could be same as A and/or B) where < some regular predicates > and < some correlated predicates > ) Can someone think of some condition(s), examples where they would not be equivalent? Regards Wolfgang Breitling Centrex Consulting Corporation www.centrexcc.com AIM: WBreitling -- //www.freelists.org/webpage/oracle-l -- //www.freelists.org/webpage/oracle-l