alter table XXX shrink space compact/cascade详解

来源:互联网 发布:建模 软件 数据 编辑:程序博客网 时间:2024/06/05 04:51
该语句允许你手动地收缩表、索引表、超负荷的段索引、分区、子分区、LOB 段、物化视图、物化视图日志


文件等的占用空间。该语句只是对ASM的表空间适用。默认地,该操作或使oracle立即压缩段、调整HWM,释放


压缩的空间。
  压缩段需要 row movement,当使用该语句前,必须保证row movement是允许的。另外,如果你的应用有任何 


基于rowid的索引,你应该先禁用他们。
  Note:
Do not attempt to enable row movement for an index-organized table before specifying the 


shrink_clause. The ROWID of an index-organized table is its primary key, which never changes. 


Therefore, row movement is neither relevant nor valid for such tables.


两个参数 compact 和 cascade 详解
   
  (1)campact 参数。如果使用了该参数,oracle会清除段中的碎片并压缩表中的行。数据库不会理解调整


HWM也不会立即释放这些空间。你必须另外再执行一次alter table ....shrink space语句来完成该操作。这个


语句在你在用两个短的操作而不是一个长的操作来完成压缩表所占的空间的情况下是有用的。


   对于索引或者索引组织的表使用ALTER [INDEX | TABLE] ... SHRINK SPACE COMPACT和使用ALTER [INDEX | 


TABLE ... COALESCE是等效的 shrink语句可以级联压缩。相对于 coalesce操作压缩尺度更大,也更能提高性


能。如果你不想释放无用的空间,你可以使用coalesce语句。
  
  (2)cascade参数。如果使用了该参数,oracle在该表的独立的对象上(包括索引组织表的索引)执行同样


的压缩操作。  


    shrink语句注意事项:
   (1)不能和其他alter table语句合并到一起,不能将该语句用于簇、簇表和任何有long类型列的表。
   (2)段压缩不支持有函数索引、域索引和bitmap join index的表
   (3)该语句不会压缩映射表盒索引组织表,即使你使用cascade字句
   (4)不能在压缩表上使用该语句 
   (5)不能压缩on commit的物化视图的主表。压缩操作之后基于rowid的物化视图必须被重建。
原创粉丝点击