日期:2014-05-17  浏览次数:20945 次

Oracle能构回收表空间吗?
数据库,但是我们把库中的所有的数据都清除掉后,但那是oracle实际所占用的空间没有释放,请问有什么方法能释放oracle数据库所占用的空间?

------解决方案--------------------
考虑一下在数据库没有使用的时候,把回滚段表空间的回滚段都offline再drop(注意保留位于SYSTEM表空间上的一个回滚段,并且是online的);
再把回滚段表空间的数据文件改小ALTER DATABASE DATAFILE '.....' RESIZE ....' ;
之后再按照原来的设置,重新建立回滚段。
------解决方案--------------------
你怎么清除的purge table?
------解决方案--------------------
truncate也未必能将之间占用的空间释放,我之前也试过,truncate一个占用了15G的空间的表之后,它竟然还是占用了十几个G.如果一定要保存表结构,建议重建表.
------解决方案--------------------
rebuild table 
rebuild index 
可以使用工具toad里面的tools
 
------解决方案--------------------
通过USER_TAB_PARTITIONS可以查看表分区,
然后将不用的分区删除
alter table table_name drop partition partition_name;
------解决方案--------------------
老问题,先在论坛上搜索有一大票答案,核心就是
ALTER DATABASE DATAFILE '.....' RESIZE ....' ;
------解决方案--------------------
oracle的表空间一经分配不能回收。