後面一個分析后,會有對像空間使用信息存放在視圖index_stats裏!
select * from dba_indexes where status not in ('N/A','VALID');
上面select出來的index結果是有問題的,如status為UNUSABLE,一般table move會使得所以失效。
你說的狀況,可能索引的存儲出了問題,使用index_stats看一下索引情況。如需要,rebuild一下就行了 !
谢谢楼上大哥!
1、前一个分析运行以后会增进查询性能吗?后一个呢?
2、select * from dba_indexes where status not in ('N/A','VALID');
为空说明没问题吧?
3、怎么使用index_stats看一下索引情況啊?不好意思,对这方面没有研究,请指教一下吧!
1.如果使用的是CBO的话,重建索引,或者索引经历过大量dml后最好用重新分析一下,得到正确的统计信息,好让CBO可以得出正确的执行计划。
2.你最好运行一下
select status, count(*)
from dba_indexes
group by status
union
select status, count(*)
from dba_ind_partitions
group by status
union
select status, count(*)
from dba_ind_subpartitions
group by status
只要没看见有unusable就说明没有失效的索引。
3.用validate structure 分析索引后察看index_stats可以看到索引状况,del_lf_rows_len 这个值超过20%就需要重建,并且如果是B-tree索引blevel超过4也需要重建