千家信息网

ORACLE解决高水位线问题

发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,--方法一.ALTER TABLE table_name MOVE ;--对表重建ANALYZE TABLE table_name COMPUTE STATISTICS ;--统计分析--方法二.AL
千家信息网最后更新 2025年02月02日ORACLE解决高水位线问题

--方法一.

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';



0