释放oracle中用户表空间的未使用空间
我在Oracle11g中有很多表和很多记录。(超过20亿)在应用了一些查询并创建了一些索引之后,我几乎没有足够的磁盘空间了。此时将显示用于执行每个查询的ORA-01652 error for USERS表空间。由于磁盘空间不足,我无法再向用户表空间添加更多数据文件。我确信这个表空间中有很多未使用的空间是不可用的。(我删除了一些表和索引,什么都没发生)我的问题是如何释放这个空间?多谢各位 我不知道是否可以对整个表空间使用它,但对于单个表,命令是:释放oracle中用户表空间的未使用空间,oracle,oracle11g,tablespace,Oracle,Oracle11g,Tablespace,我在Oracle11g中有很多表和很多记录。(超过20亿)在应用了一些查询并创建了一些索引之后,我几乎没有足够的磁盘空间了。此时将显示用于执行每个查询的ORA-01652 error for USERS表空间。由于磁盘空间不足,我无法再向用户表空间添加更多数据文件。我确信这个表空间中有很多未使用的空间是不可用的。(我删除了一些表和索引,什么都没发生)我的问题是如何释放这个空间?多谢各位 我不知道是否可以对整个表空间使用它,但对于单个表,命令是: ALTER TABLE MY_TABLE ENAB
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;
也许您必须循环模式中的所有表
然后,您可以通过重建索引来获得磁盘空间
ALTER INDEX THE_INDEX REBUILD;
确定最大的表,发送电子邮件威胁删除或截断它们,并查看谁投诉。很有可能您将能够恢复一大块空间;)