在新增记录时,高水位线会慢慢往上移,但是在删除记录后,高水位线却不会往下移。
在使用delete from命令删除大量数据时会导致因HWM引起的性能问题。
删除高水位的最直接的方法是truncate Table。
-----Oracle 频繁delete
表空间无法释放,释放表空间方法,清除表的高水位线
-----move 方法 释放表空间,注意重建索引
----生成批量修改脚本
----move最好是在空闲时操作,move可能会产生TM锁的
ALTER TABLE tablename MOVE;
----压缩块之后所有索引都会失效,需要重建索引
ALTER INDEX INDEX_NAME REBUILD;
批量move
select 'alter table '||segment_name||' move;'
from user_segments
where segment_type='TABLE'
and tablespace_name='user'
批量重建索引
select 'ALTER INDEX '||segment_name||'
REBUILD;'
from user_segments
where segment_type='INDEX'
and tablespace_name='user
----使用SHRINK SPACE 释放表空间,前提是自动段空间管理(ASSM)
----查看表空间管理方式
SELECT TABLESPACE_NAME, EXTENT_MANAGEMENT FROM
DBA_TABLESPACES
----生产库LOCAL本地管理,测试报错ORA-10635: Invalid segment or
tablespace type
http://blog.csdn.net/evils798/article/details/26571479
alter table XQ_USER_COMPLAIN_GRID enable row
movement;
ALTER TABLE tablename SHRINK SPACE;
ALTER TABLE
tablenameSHRINK SPACE
COMPACT;
alter table
tablename shrink space
cascade;
alter table
tablename
DISABLE row movement;
参考博客:
http://www.blogjava.net/decode360/archive/2009/07/14/287767.html