--方法一.
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';