truncate table reuse storage

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會改變).
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章