Thanks , That's what I guessed . But was feeling lazy to do 10046 tracing . N E way thanks for the info . -ak
----- Original Message ----- To: "Multiple recipients of list ORACLE-L" <[EMAIL PROTECTED]> Sent: Thursday, April 03, 2003 5:40 PM > Ak, > > I think what you're seeing is the result of the parse not necessarily > what ends up happening. > I ran a similar circumstance with a 10046 trace on and it reports no > physical reads, no logical reads, and returns 1 row. The "explain plan" > still shows a full table scan of my table but the trace doesn't report > any rows or blocks read from that table. > It's probably also worth noting that 100% of my waits were sqlnet > message to / from client. > Also, I ran this test because I didn't know the answer and thought it a > very good question. > > The table is one I created called crazy_table as select * from > user_objects. > The query is > select count(*) from crazy_table where 1=2; > > Here, I paste relevant sections of my trace output, but to see the > whole picture, you might want to run some tests of your own: > > > SUMMARY OF CALLS BY USER (INTERNAL LAST) AND NON-RECURSIVE/RECURSIVE > ==================================================================== > > OVERALL TOTALS PER CALL FOR ALL NON-RECURSIVE STATEMENTS FOR USER 44 > (ARTHUR) > > call count cpu elapsed disk query > current rows misses > ------- --------- --------- --------- ------------ ------------ > ------------ ------------ --------- > Parse 2 0.00 0.01 0 0 > 0 0 1 > Execute 3 0.00 0.00 0 0 > 0 1 0 > Fetch 2 0.00 0.00 0 0 > 0 1 0 > ------- --------- --------- --------- ------------ ------------ > ------------ ------------ --------- > total 7 0.00 0.01 0 0 > 0 2 1 > > > **************************************************************************** *************************************** > > SUMMARY OF CALLS BY COMMAND TYPE, USER (INTERNAL LAST) AND > NON-RECURSIVE/RECURSIVE > ============================================================================ ====== > > OVERALL TOTALS PER COMMAND TYPE FOR ALL NON-RECURSIVE STATEMENTS FOR > USER 44 (ARTHUR) > > command type count cpu elapsed disk > query current rows misses > ----------------------- --------- --------- --------- ------------ > ------------ ------------ ------------ --------- > select................. 4 0.00 0.01 0 > 0 0 1 1 > alter session.......... 1 0.00 0.00 0 > 0 0 0 0 > pl/sql execute......... 2 0.00 0.00 0 > 0 0 1 0 > ----------------------- --------- --------- --------- ------------ > ------------ ------------ ------------ --------- > total.................. 7 0.00 0.01 0 > 0 0 2 1 > > > SUMMARY OF PHYSICAL READS, LOGICAL READS, ROWS AND MISSES PER CURSOR > > cursor user > id id command type disk query > current rows misses > ------ ---- ----------------------- ------------ ------------ > ------------ ------------ --------- > 1..... 44.. alter session.......... 0 0 > 0 0 0 > 2..... 44.. select................. 0 0 > 0 1 1 > 3..... 44.. pl/sql execute......... 0 0 > 0 1 0 > ------ ---- ----------------------- ------------ ------------ > ------------ ------------ --------- > total. .... ....................... 0 0 > 0 2 1 > > > CURSOR_ID:2 LENGTH:43 ADDRESS:abb65150 HASH_VALUE:427590100 > OPTIMIZER_GOAL:CHOOSE USER_ID:44 (ARTHUR) > > select count(*) from crazy_table where 1=2 > > call count cpu elapsed disk query > current rows misses > ------- --------- --------- --------- ------------ ------------ > ------------ ------------ --------- > Parse 1 0.00 0.01 0 0 > 0 0 1 > Execute 1 0.00 0.00 0 0 > 0 0 0 > Fetch 2 0.00 0.00 0 0 > 0 1 0 > ------- --------- --------- --------- ------------ ------------ > ------------ ------------ --------- > total 4 0.00 0.01 0 0 > 0 1 1 > > | Rows Row Source Operation > | ------------ --------------------------------------------------- > | 1 SORT AGGREGATE > | 0 .FILTER > | 0 ..TABLE ACCESS FULL CRAZY_TABLE > > Explain Plan > --------------------------------------------------------------- > ...4 SELECT STATEMENT > ...3 .SORT (AGGREGATE) > ...2 ..FILTER > ...1 ...TABLE ACCESS (FULL) OF 'ARTHUR.CRAZY_TABLE' > > OWNER.TABLE_NAME > ...owner.index_name num rows > blocks sample last analyzed date > ----------------------------------------------------- ---------- > ---------- ---------- ------------------- > ARTHUR.CRAZY_TABLE................................... > > Event > Times Count Max. Total Blocks > waited on > Waited Zero Time Wait Waited Accessed > ----------------------------------------------------------------- > --------- --------- --------- --------- --------- > SQL*Net message from client (idle)............................... > 2 2 0.00 0.00 > SQL*Net message to client (idle)................................. > 2 2 0.00 0.00 > ----------------------------------------------------------------- > --------- --------- --------- --------- --------- > total............................................................ > 4 4 0.00 0.00 0 > > non-idle waits................................................... > 0 0 0.00 0.00 0 > idle waits....................................................... > 4 4 0.00 0.00 > > > > > > > > >>> [EMAIL PROTECTED] 04/03/03 05:58PM >>> > 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 > > > > -- > Please see the official ORACLE-L FAQ: http://www.orafaq.net > -- > Author: Darrell Landrum > INET: [EMAIL PROTECTED] > > Fat City Network Services -- 858-538-5051 http://www.fatcity.com > San Diego, California -- Mailing list and web hosting services > --------------------------------------------------------------------- > To REMOVE yourself from this mailing list, send an E-Mail message > to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in > the message BODY, include a line containing: UNSUB ORACLE-L > (or the name of mailing list you want to be removed from). You may > also send the HELP command for other information (like subscribing). > > -- Please see the official ORACLE-L FAQ: http://www.orafaq.net -- Author: AK INET: [EMAIL PROTECTED] Fat City Network Services -- 858-538-5051 http://www.fatcity.com San Diego, California -- Mailing list and web hosting services --------------------------------------------------------------------- To REMOVE yourself from this mailing list, send an E-Mail message to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in the message BODY, include a line containing: UNSUB ORACLE-L (or the name of mailing list you want to be removed from). You may also send the HELP command for other information (like subscribing).