日期:2014-05-16  浏览次数:20496 次

重建索引的条件

如果索引存在碎片,那每个索引数据块上的索引数据就更少,会导致我们需要访
问更多的索引数据块。这时,我们需要考虑重建索引来释放碎片;


判断一个所以是否需要重建,我们介绍一个简单的方法:

对一个索引进行结构分析后,如果该索引占用超过了一个数据块,且满足以下条件之一:

?

1:B-tree 树的高度大于3

?

2:使用百分比低于75%

?

3:数据删除率大于15%

?

?

就需要考虑对索引重建:


SQL> analyze index VEHICLEALARM_ALARMTIME compute statistics;
Index analyzed.

?

SQL> analyze index VEHICLEALARM_ALARMTIME validate structure;
Index analyzed.

?

SQL> select btree_space, -- if > 8192(块的大小)
?height, -- if > 3
?pct_used, -- if < 75
?del_lf_rows/(decode(lf_rows,0,1,lf_rows)) *100 as deleted_pct -- if >20%
?from index_stats;

?

?


BTREE_SPACE?? HEIGHT???? PCT_USED? DELETED_PCT
-----------???????? ?----------??? ----------??? ?-----------
880032???????????? ?2??????????????? ?89??????????????? ?0