某分区表很大,存储了三年以上的数据,数据存储量超3T,需要创建本地分区索引(create index ... local),但创建时报UNDO表空间不足问题,导致创建失败。
解决办法主要有两个:
1.扩张UNDO表空间
2.采用延迟创建索引的办法,先创建上索引,然后使用alter index rebuild方式逐天重建索引。
实际环境中没有足够存储空间用来扩UNDO表空间,只能采取延迟创建索引的方法,具体操作步骤是:
1、使用unusable关键字先创建索引,参考语句如下:
create unique index index_name on table_name (column_name) LOCAL unusable;
2、使用alter index重建分区索引,可避免报Undo表空间不足的问题。参考语句如下:
alter index index_name rebuild subpartition subpartition_name;
逐天重建索引的语句参考如下:
declare
vsql varchar2(2000);<