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