what is missing is the test case...
(you are logged in as the owner of the index right??)
ops$tkyte@ORA9IR2> CREATE TABLE t
2 (
3 dt date,
4 x int,
5 y varchar2(25)
6 )
7 PARTITION BY RANGE (dt)
8 (
9 PARTITION part1 VALUES LESS THAN (to_date('13-mar-2003','dd-mon-yyyy')) ,
10 PARTITION part2 VALUES LESS THAN (to_date('14-mar-2003','dd-mon-yyyy')) ,
11 PARTITION junk VALUES LESS THAN (MAXVALUE)
12 )
13 /
Table created.
ops$tkyte@ORA9IR2> create bitmap index t_idx on t(x) local;
Index created.
ops$tkyte@ORA9IR2> insert into t select to_date( '13-mar-2003', 'dd-mon-yyyy')+mod(rownum,3), rownum, 'x' from all_objects;
30687 rows created.
ops$tkyte@ORA9IR2>
ops$tkyte@ORA9IR2> alter index t_idx monitoring usage;
Index altered.
ops$tkyte@ORA9IR2> set autotrace on explain
ops$tkyte@ORA9IR2> select /*+ index( t t_idx ) */ y from t where x = 42;
Y
-------------------------
x
Execution Plan
----------------------------------------------------------
0
SELECT STATEMENT Optimizer=CHOOSE (Cost=16 Card=71 Bytes=1917)
1 0
PARTITION RANGE (ALL)
2 1
TABLE ACCESS (BY LOCAL INDEX ROWID) OF 'T' (Cost=16 Card=71 Bytes=1917)
3 2
BITMAP CONVERSION (TO ROWIDS)
4 3
BITMAP INDEX (SINGLE VALUE) OF 'T_IDX'
ops$tkyte@ORA9IR2> set autotrace off
ops$tkyte@ORA9IR2> select * from v$object_usage;
INDEX_NAME TABLE_NAME MON USE
------------------------------ ------------------------------ --- ---
START_MONITORING END_MONITORING
------------------- -------------------
T_IDX T YES YES
10/20/2005 16:35:56