TATUS
------------------------------ ------------------------------ --------
IDX_TEST2 TEST_2 VALID
SQL>
---从上面可以看出预分配的空间全部释放了,说明shrink space 同样会移动高水位,但也会释放申请的空间,是在高水位上下(below and above HWM)都有的操作,并且索引不会失效。
注意:
①:使用move时,会改变一些记录的ROWID,所以MOVE之后索引会变为无效,需要REBUILD。
②:使用shrink space时,索引会自动维护。如果在业务繁忙时做压缩,可以先shrink space compact,来压缩数据而不移动HWM,等到不繁忙的时候再shrink space来移动HWM。
③:索引也是可以压缩的,压缩表时指定Shrink space cascade会同时压缩索引,也可以alter index xxx shrink space来压缩索引。
④:shrink space需要在表空间是自动段空间管理的,所以system表空间上的表无法shrink space。
---补充,move 也可以做到真正的压缩分配空间,只要指定STORAGE参数即可。:
SQL> alter table test_1 move storage (initial 1m);