I'm going to take a guess, since I know that there is at least one member of the list that can do better, but here goes...

Predicates (where clauses) are applied as result sets are processed. Oracle has no knowledge that the predicate will always evaluate to false. This results in a row being read, checking the predicate and rejecting the row.

Okay, gurus, please correct me if I am wrong (by the way, I'm being totally serious...)

-- 
Daniel W. Fink
http://www.optimaldba.com

IOUG-A Live! April 27 - May 1, 2003 Orlando, FL
   Sunday, April 27 8:30am - 4:30pm - Problem Solving with Oracle 9i SQL
   Thursday, May 1 1:00pm - 2:00pm - Automatic Undo Internals

AK wrote:
If I execute a query like ,
select count(*) from  some_table where 1=2 .
why does oracle bothers to look at tables . Since there is only one condition which is false .
 
If  I write a sql like
 
       select count(*)
      from  some_table 
     where column_a= :a
     and a is not null;
 
it should not even go to look at table , but explain plan suggests that it does a index /table scan  .
 
-ak
 
 
 
 



Reply via email to