--方法一.

ALTER  TABLE  table_name MOVE ;--对表重建

ANALYZE  TABLE  table_name COMPUTE  STATISTICS ;--统计分析


--方法二.  

ALTER TABLE  table_name ENABLE ROW MOVEMENT;--激活行迁移

ALTER TABLE  table_name SHRINK SPACE;--激活表收缩

ANALYZE  TABLE  table_name COMPUTE  STATISTICS ;--统计分析

弊端:如果是分区表,激活后,表数据会因为更新分区字段更新磁盘物理位置(ROWID);


方法三:

CREATE TABLE table_name_1 AS SELECT  *  FROM  table_name;

TRUNCATE TABLE table_name;

INSERT INTO table_name SELECT * FROM table_name_1;

弊端:麻烦,耗时


方法四:

新建一个临时表,把数据复制到临时表,然后把源表drop掉,再把临时表重新命名为源表的名字。

弊端,主键.索引等依托于此表的对象需要重建


校验方法:

通过分析比对表块删除数据前后占用变化.

SELECT num_rows ,blocks, empty_blocks  FROM dba_tables WHERE owner='SDBMGR' AND table_name ='TABLE_NAME';