簡體   English   中英

在oracle中釋放USERS表空間的未使用空間

[英]Release unused space of USERS tablespace in oracle

我在Oracle 11g中有很多表,並且有很多記錄。 (超過20億個)在應用了一些查詢並創建了一些索引之后,我非常接近磁盤空間不足。 現在將出現用於執行每個查詢的USERS表空間ORA-01652錯誤。 由於磁盤空間不足,我無法再向USERS表空間添加更多數據文件。 我確定此表空間上有很多未使用的空間,它們某種程度上是無法使用的。 (我刪除了一些表和索引,什么都沒發生)我的問題是如何釋放這個空間? 非常感謝你。

我不知道是否可以為整個表空間使用它,但是對於單個表,命令為:

ALTER TABLE MY_TABLE ENABLE ROW MOVEMENT; -- By defaut ROW MOVEMENT is disabled when you create a table.
ALTER TABLE MY_TABLE SHRINK SPACE CASCADE;
ALTER TABLE MY_TABLE DEALLOCATE UNUSED;

也許您必須在架構中遍歷ALL_TABLES

然后,您可以通過重建索引來獲得磁盤空間。

ALTER INDEX THE_INDEX REBUILD;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM