Why is Index not used ?
Hi all,
I have a table with a simple index on a char column called vecka_id like:
CREATE INDEX NGDALA.DIM_DAG_TEST_VEID_IX ON NGDALA.DIM_DAG_TEST
(VECKA_ID)
LOGGING
TABLESPACE INDX
PCTFREE 10
INITRANS 2
MAXTRANS 255
STORAGE (
INITIAL 64K
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
BUFFER_POOL DEFAULT
)
NOPARALLEL;
-----------------------
When running this query the index IS used:
SELECT vecka_id
FROM dim_dag_test
WHERE vecka_id BETWEEN '2009W30' AND '2009W35'
Plan
SELECT STATEMENT ALL_ROWS
Cost: 2 Bytes: 756 Cardinality: 42
1 INDEX RANGE SCAN INDEX NGDALA.DIM_DAG_TEST_VEID_IX Search Columns: 1
Cost: 2 Bytes: 756 Cardinality: 42
-----------------------
When changing the selected column and running this query the index is NOT used:
SELECT dag_datum
FROM dim_dag_test
WHERE vecka_id BETWEEN '2009W30' AND '2009W35'
Plan
SELECT STATEMENT ALL_ROWS
Cost: 23 Bytes: 1,134 Cardinality: 42
1 TABLE ACCESS FULL TABLE NGDALA.DIM_DAG_TEST
Cost: 23 Bytes: 1,134 Cardinality: 42
-----------------------
My question is why the index isn´t used when the indexed column is not in the select statement ?
Regards
Samuel