从表中删除数百万行后如何释放空间

5 oracle

我对我的表执行了删除操作。它从中删除了大约 1000 万行

如何释放与已删除数据相关的空间。

我使用了查询:

alter table tablename shrink space;
Run Code Online (Sandbox Code Playgroud)

但它对我不起作用。我需要关心与表相关的索引吗?

如果是这种情况,我需要怎么做。

Ren*_*ger 5

alter table TABLENAME move;
Run Code Online (Sandbox Code Playgroud)

然后重建该表上的索引应该做你想做的。

在“移动”表格后,行的索引将变得不可用(您可以使用类似的方法进行验证):

select index_name, status from all_indexes 
 where table_name = 'TABLENAME' and
       owner      = 'SOMEUSER';
Run Code Online (Sandbox Code Playgroud)

所以,你会重建这样一个不可用的索引

alter index TABLENAME_IX_01 rebuild;
Run Code Online (Sandbox Code Playgroud)