釋放表空間的方法總結(jié)
一、使用drop表操作 在執(zhí)行drop table語(yǔ)句后,被刪除的表會(huì)被放入回收站(user_recyclebin),而不是直接徹底刪除。若需要直接刪除而不放入回收站,則可以使用drop table
一、使用drop表操作
在執(zhí)行drop table語(yǔ)句后,被刪除的表會(huì)被放入回收站(user_recyclebin),而不是直接徹底刪除。若需要直接刪除而不放入回收站,則可以使用drop table...purge語(yǔ)句。
二、恢復(fù)回收站中的表
通過(guò)查詢回收站(user_recyclebin)獲取被刪除的表信息,然后使用flashback table語(yǔ)句將回收站中的表恢復(fù)為原名稱或指定新名稱。使用該方法進(jìn)行恢復(fù)時(shí),表中的數(shù)據(jù)不會(huì)丟失。如果想要徹底刪除表,可以使用drop table...purge語(yǔ)句。
清除回收站中的信息有以下幾種方式:
- 清除指定表:purge table table_name;
- 清除當(dāng)前用戶的回收站:purge recyclebin;
- 清除所有用戶的回收站:purge dba_recyclebin;
三、清除表中的數(shù)據(jù)
truncate操作類似于沒有where條件的delete操作,它將刪除表中的所有數(shù)據(jù),但表本身仍然存在。例如,truncate table XX;。需要注意的是,truncate操作不支持回滾,并且無(wú)法對(duì)帶有外鍵的表進(jìn)行truncate。若想要?jiǎng)h除帶有外鍵的表,需要先取消外鍵關(guān)聯(lián),然后再進(jìn)行刪除。
在使用truncate table后,有可能表空間仍然沒有被釋放。可以使用alter UNUSED KEEP 0語(yǔ)句來(lái)釋放表空間。如果不加上KEEP 0參數(shù),表空間將不會(huì)被釋放。例如,alter table F_MINUTE_TD_NET_FHO_B7 deallocate UNUSED KEEP 0; 或者 TRUNCATE TABLE (schema)table_name DROP(REUSE) STORAGE 可以釋放表空間。例如,truncate table test1 DROP STORAGE;