SHRINK SEGMENT降低高水位

在线段收缩支持:LOB段,IOT溢出段;
 使用在线段收缩回收HWM以下碎片的空闲空间,段收缩的好处:
 更好的缓存使用率,提高OLTP的性能;
 减少全表扫描的数量,提高DSS的性能;
 段收缩是在线的,索引在段收缩期间维护,不要求额外的磁盘空间。
 段收缩收回HWM以下和以上的未使用空间,而空间释放仅仅释放高水位以上的未使用空间。默认情况下,段收缩压缩段,调整高水位,释放空间。
 使用段收缩前必须使用ALTER TABLE ... ENABLE ROW MOVEMENT启用行移动,因为段收缩要求行移动到新位置。
 段收缩只能在本地管理ASSM表空间上执行,ASSM中所有的段除以下外均可收缩:
 IOT映射表;
 物化视图基于ROWID;
 具有函数索引的表;
 调用段收缩
 调用段收缩前,查看顾问的发现和推荐。使用ALTER TABLE, ALTER INDEX, ALTER MATERIALIZED VIEW, ALTER MATERIALIZED VIEW LOG语句的SHRINK SPACE子句完成;
 两个可选子句控制收缩操作的处理:
 COMPACT:Oracle消除碎片并且压缩数据,但是推迟重设HWM并且释放空间。可以在非高峰期不带COMPACT执行SHRINK SPACE完成第二阶段。
 CASCADE:使用该子句扩展段收缩到所有的依赖对象。可以运行DBMS_SPACE的OBJECT_DEPENDENT_SEGMENTS查看所有依赖于给定对象的段。
 ALTER TABLE employees SHRINK SPACE CASCADE;
 ALTER TABLE employees MODIFY LOB (perf_review) (SHRINK SPACE);
 ALTER TABLE customers MODIFY PARTITION cust_P1 SHRINK SPACE;
 ALTER TABLE cities SHRINK SPACE CASCADE;
 ALTER TABLE cities OVERFLOW SHRINK SPACE;

Oracle 10g

语法:

alter table <table_name> shrink space [ <null> | compact | cascade ];

alter table <table_name> shrink space compcat;

收缩表,但会保持 high water mark; (这怎么理解?相当于没回缩?)

相当于把块中数据打结实了。没有变动hwm

alter table <table_name> shrink space;

收缩表,降低 high water mark;

alter table <table_name> shrink space cascade;

收缩表,降低 high water mark,并且相关索引也要收缩一下下。

 

你可能感兴趣的:(oracle,object,table,null,扩展,磁盘)