删除一张表,完全的释放空间:
truncate table table_name;碎片整理命令:
 ALTER TABLESPACE tabspace_name COALESCE;

解决方案 »

  1.   

    楼上的兄弟回答得不错,这里补充一点。
    alter tablespace tablespace_name coalesce;只是把相邻的空闲块结合在一块,从而形成一个大的空闲块。而不能像windowns的磁盘整理工具那样。
    如你需要彻底的整理,你需要把表空间的所有的表exp出来,在imp进去,这样才能达到windows的那种效果。
      

  2.   

    to developer2002(开发者2002) 麻烦你再说清楚些好么?谢谢咯。
      

  3.   

    可以查看一下dba_extexts这个视图。select sum(bytes) from dba_extents where segement_name='你的表名',注意表名大写。这样可以知道目前你的表大约占用的空间量。实际量是小于等于这个值的。或者,你直接select * from dba_extents where segement_name=你的表名',有多少行,就是表扩展了多少次。我对建表的建议和beckhambobo正好相反,正确估计某一类表的月使用量,根据这个量控制表空间的存储参数,表的参数就使用表空间的存储参数值,这样可以避免表空间级的碎片。