我们开始时向一个空的带索引的表中插入大量数据后,是不会产生碎片问题的,但是,数据库经过很长一段时间的增删改查后,难免会出现碎片问题,影响数据库的性能,Oracle对于这一问题有自己的解决方案。

下面介绍解决这一问题的方案:

首先要对索引进行分析:analyze index ind_1 validate structure;  ind_1为你自己建立的索引

分析后查询几个主要的参数判断是否需要整理碎片:select name,HEIGHT,PCT_USED,DEL_LF_ROWS/LF_ROWS from index_stats;

Oracle解决索引碎片功能_数据库

这里主要通过几个标准来判断是否需要整理碎片:

1.HEIGHT>=4

2.PCT_USED<50%

3.DEL_ROWS/LF_ROWS>0.2

如果查询到的值符合以上三种情况的任意一种,就说明我们需要进行碎片整理工作了

碎片整理语句:alter index ind_1 rebuild [online] [tablespace name];