我在一张目前存储了50多万条数据的表,
应该该表经常要做查询,然后我在该表上对该表的d_date字段建了个索引
可是今天发现在执行 select * from 该表 where d_date = '2010-12-31'
语句的执行计划的时候,显示得始终是 "TABLE ACCESS FULL",索引始终没有生效,
查询时间较长啊 .
然后我用alter 语句 rebuild下该索引,还是没有生效...最终很郁闷.
但是加上强制执行索引的条件索引才生效(select /*+omdex(t,IDX_DDATE)*/) * FROM 该表 where t.d_date = '2010-12-31')
请求解决办法啊.
------解决方案--------------------
是否使用索引,很大程度上由你的 sql 语句的 selectivity 来决定的。如果从 50 万条数据中 select 10 万条数据,当然不会使用索引。
------解决方案--------------------
学习了
使用强制索引
应该是select /*+index(a,index_name)*/ column_name from table where condition 吧
是不是你的强制索引写法有问题啊??