Hi,

I have a puzzle.

A bitmap index on a varchar2(25) column. table has 7131413 rows, of which
7125290 are null for the column in question, the rest of the rows are unique
values. There is a histogram on this column, it has 2 buckets.

A select statement using this column in the where clause generates two
plans, one which uses the index and one which doesn't. The deciding factor
is the length of the string in the filter.

select * from table where microchip_number = 'avid1'
        this produces a plan which uses the bitmap

select * from table where microchip_number = 'avid12' (and any additional
characters in the string ) 
        this produces a plan which uses a full table scan.

I am stumped about how to figure out why the optimizer makes a choice based
upon the length of the string in the predicate.

Much obliged,

Josh

-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.net
-- 
Author: Josh Collier
  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).

Reply via email to