JP, In the EXPLAIN PLAN, it says "Card=262146", indicating that the query expects to retrieve over a quarter-million rows. Is that in fact correct?
If so, the CBO is making the correct decision to perform a FULL table scan. What was the comparison of elapsed times between the two plans, the one being the FULL table scan and the other being the indexed scan? I bet the FULL table scan query finished much more quickly... You've got everything configured correctly -- simply a lousy index. The CBO has to be coerced into using the index because it is not the best plan to use. Hope this helps... -Tim on 5/28/03 11:54 PM, Prem Khanna J at [EMAIL PROTECTED] wrote: > Guys, > > create table Tab1 ( name varchar2(100),age int,state varchar2(100),country > varchar2(100)); > > insert into tab1 values ('SCOTT',25,'TN','India'); > > I have 20,00,000 records like above. > > create index idx1 on tab1 (upper(name)); > > analyze table tab1 compute statistics; > analyze index idx1 compute statistics; > > select age from tab1 where upper(name)='SCOTT'; ---> this will return around > 50 records. > > --------------------------------------------------------- > 0 SELECT STATEMENT Optimizer=CHOOSE (Cost=2458 Card=262146 Bytes=2097168) > 1 0 TABLE ACCESS (FULL) OF 'TAB1' (Cost=2458 Card=262146 Bytes=2097168) > > --- INIT.ORA ---------------------- > optimizer_mode=choose > compatible=8.1.0 > query_rewrite_enabled=true > query_rewrite_integrity=trusted > ----------------------------------- > It's Oracle 8.1.6/Win2K. > > When i add a HINT, IDX1 is used.Why is it so ? > Why this SELECT does not use index IDX1 w/o a hint ? > > TIA. > Jp. > -- Please see the official ORACLE-L FAQ: http://www.orafaq.net -- Author: Tim Gorman 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).