truncate table reuse storage

来源:互联网 发布:mac外服加速器 编辑:程序博客网 时间:2024/06/13 22:57
drop storage是默认值,其与reuse storage的区别是是否回收清除表中rows的free space给tablespace,如果使用了drop storage,回收回来的frespace可以供其它segment使用,否则这部分空间只能表自己用。

另外一个区别是,用reuse storage可以减少对表及数据字典的锁定时间,特别是大表常这样做,余下和DEALLOCATE UNUSED 来逐步回收空间。

而对于hwm不论是用drop storage还是reuse storage都会回缩到第一个block。


总结一下 :


A, B 为两个Table . 
A, B 的数据分别放在 erp_data  表空间下  
A, B 的索引分别放在 erp_indx  表空间下   

那么
我们使用下面的两个语句删除两个表中的数据 
Truncate table A  drop    storage  ;  
Truncate table B  reuse  storage  ;    

得到的结果将是:

Truncate table A  drop    storage  ;  
--data :   数据部分所在的extent 空间会被释放(释放回收到 minextents
             个extent),腾出来的空间可以供其它segment 使用 。 
--index :  B表的index部分会数据删除,但是保留extent 部分 (错误
更正,extent部分也被释放,剩下第一个extent) 
--hwm :   会将HWM重新设置到第一个Block的位置(hwm会改变). 


Truncate table B  reuse  storage  ;    
--data :   数据部分所在的extent 空间不会被回收(仅仅数据会被删 
       除),数据删除之后的freespace 空间只能供本表使用,不可
       以供其它 segment 使用 。   
--index :  B表的index部分会数据删除,但是保留extent 部分 
--hwm :   会将HWM重新设置到第一个Block的位置(hwm会改变).
0 0
原创粉丝点击