插入和删除数据都会产生大量的碎片。所以就把空间给占满了。
你运行一下alter tablespace tablespacename coalesce;
看看还剩下多少空间?

解决方案 »

  1.   

    truncate table 表名delete后HWM不变,truncate table后释放使用空间。
      

  2.   

    我执行了,但是剩余空间没有增加。另外,我查看了表空间的dependent,只有一些存储过程了
      

  3.   

    OK,使用hiro的方法可以。
    不过我想向KingSunSha确认一下:假设Table中已经没有数据,即使tablespace中存在一定的被占用空间,那么重新插入数据的时候这些被占用的空间会重复使用。如果是这样的话,那就OK了。
      

  4.   

    这应该是高端水印的问题,数据已经全部删除,表其实是空的,但是显示剩余空间不变,使用truncate table tablename;看看。
      

  5.   

    用delete,空间是不释放的,除非用truncate table 表名;
    不过,因为空间是可以重用的,你不必要管它啊,这样第二次的时候还更快些,因为不用分配空间
      

  6.   

    可以用TRUNCATE TABLE代替delete来防止HIGH_WATER MARK问题。
      

  7.   

    ALTER TABLE tablename 
    DEALLOCATE UNUSED;