日期:2014-05-16 浏览次数:20500 次
如果索引存在碎片,那每个索引数据块上的索引数据就更少,会导致我们需要访
问更多的索引数据块。这时,我们需要考虑重建索引来释放碎片;
判断一个所以是否需要重建,我们介绍一个简单的方法:
对一个索引进行结构分析后,如果该索引占用超过了一个数据块,且满足以下条件之一:
?
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