昨晚刚刚对一个分区的大表(有1000万)建了几个索引,这些索引都是建在该表的单独的某一列上,分别create index 之后,然后执行:
analyze table aaa estimate statistics for tablefor all indexed columns
,这些索引都是建在同一表空间上.
然后检查是否能利用索引(oracle 8i),
set autot traceonly;
select* from aaa where column1=1;
发现执行计划利用了该索引,结果很快.
第二天一早,就发现该索引不能被利用了,问题是一共6个索引,其他四个索引都没有问题,唯独其他两个索引不能用了,即使用
select/* + index aaa(columns1) */ * from aaa where columns1=1;也做全表扫描,而不是利用索引.
检查过dba_indexes中的字段也没有发现可疑之处,毕竟这几个索引的参数都差不多,为什么其中的两个不行?
执行analyze index validate structure,观察index_stat也没发现什么不妥的地方,
在索引失效之前,该表并没有执行多少dml语句.
现在没有了思路,该如何解决该问题?thanks
|