如何检查表的索引是否已损坏?

[复制链接]
查看11 | 回复9 | 2008-2-13 12:43:03 | 显示全部楼层 |阅读模式
如题,请大侠给个方案,小弟不胜感谢。我的系统运行2年了,性能好象有点降低了,有好多大表我都怀疑索引损坏了
回复

使用道具 举报

千问 | 2008-2-13 12:43:03 | 显示全部楼层
analyze index ...... ..validate structure
回复

使用道具 举报

千问 | 2008-2-13 12:43:03 | 显示全部楼层
analyze table 表 compute statistics for table for all indexed columns;
和这个
analyze index ...... ..validate structure
有啥区别?
回复

使用道具 举报

千问 | 2008-2-13 12:43:03 | 显示全部楼层
前面是為cost優化模式收集統計信息!
回复

使用道具 举报

千问 | 2008-2-13 12:43:03 | 显示全部楼层
後面一個分析后,會有對像空間使用信息存放在視圖index_stats裏!
select * from dba_indexes where status not in ('N/A','VALID');
上面select出來的index結果是有問題的,如status為UNUSABLE,一般table move會使得所以失效。
你說的狀況,可能索引的存儲出了問題,使用index_stats看一下索引情況。如需要,rebuild一下就行了 !
回复

使用道具 举报

千问 | 2008-2-13 12:43:03 | 显示全部楼层
谢谢楼上大哥!
1、前一个分析运行以后会增进查询性能吗?后一个呢?
2、select * from dba_indexes where status not in ('N/A','VALID');
为空说明没问题吧?
3、怎么使用index_stats看一下索引情況啊?不好意思,对这方面没有研究,请指教一下吧!
回复

使用道具 举报

千问 | 2008-2-13 12:43:03 | 显示全部楼层
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也需要重建
回复

使用道具 举报

千问 | 2008-2-13 12:43:03 | 显示全部楼层
1,如果查詢使用的是cost 優化器的話,在某些情況下是可以的。如select的相關表dml動作很頻繁。
2,説明索引無失效狀況,但可能存在性能問題,如層級過高等。
3,先分析所需索引analyze index &index_name validate structure;
然後查詢此視圖如下
select name,(del_lf_rows_len/lf_rows_len)*100 as wastage
from index_stats
一般wastage > 20%,需重建索引。
回复

使用道具 举报

千问 | 2008-2-13 12:43:03 | 显示全部楼层
原帖由 flying.hg 于 2007-11-26 16:52 发表
1,如果查詢使用的是cost 優化器的話,在某些情況下是可以的。如select的相關表dml動作很頻繁。
2,説明索引無失效狀況,但可能存在性能問題,如層級過高等。
3,先分析所需索引analyze index &index_nam ...


嘿嘿,我领先了...
回复

使用道具 举报

千问 | 2008-2-13 12:43:03 | 显示全部楼层
感谢楼上两位大哥,运行zergduan 大哥给出的2结果为:VALID
1273
另外,我的index_stats表为空,这说明什么问题?
由此引申出一个问题
我应该如何对一张大表(14250440行数据)进行优化调整?就是优化索引吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行