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 likeselect count(*)from some_tablewhere column_a= :aand 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
