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会改变).