在下午的检查中,还发现另外几个对象在sysaux表空间中占据很大的空间:I_WRI$_OPTSTAT_H_OBJ#_ICOL#_ST,大小为4124M,WRI$_OPTSTAT_HISTGRM_HISTORY,大小为2893M,前者是后者的索引,此表是用来保存历史的的收集统计信息的。
查看metalink相关文章:
Statistics space used by SM/OPTSTAT in the SYSAUX tablespace is not reclaimed after purging [ID 454678.1]
Reduce SYSAUX Tablespace Occupancy Due to Fragmented TABLEs and INDEXes [ID 1271178.1]
发现metalink上认为的是这个表索引的碎片比较多,需要重整。在oracle10g中,重整表的方式有多种,为了不重新rebuild index,且不影响现在的业务,没有采用move的方式,而是采用shrink 的方式对索引进行了收缩:
ALTER INDEX I_WRI$_OPTSTAT_H_OBJ#_ICOL#_ST SHRINK SPACE;
shrink后,此索引的大小缩至286.75M,同时此表的大小也有很明显的缩小,现在只有309M,效果挺明显;
再对WRI$_OPTSTAT_HISTGRM_HISTORY shrink:
ALTER TABLE WRI$_OPTSTAT_HISTGRM_HISTORY SHRINK SPACE;
报:ORA-10631: SHRINK clause should not be specified for this