有一张表占了5g的表空间,我用drop table tablename purge 命令删除了这个表,但发现已用表空间跟没删除这个表之前一样,未什么没有释放表空间呢?怎么释放一个表所占用的表空间?

解决方案 »

  1.   

    表空间的大小,你是怎么查的?估计你查的是表空间的总大小,而不是空闲空间;dba_segments 可以查看具体的表空间的实际使用大小 ;
      

  2.   

    查看表空间使用情况
    SELECT a.tablespace_name, 
    a.bytes total, 
    b.bytes used, 
    c.bytes free, 
    (b.bytes * 100) / a.bytes "% USED ", 
    (c.bytes * 100) / a.bytes "% FREE " 
    FROM sys.sm$ts_avail a, sys.sm$ts_used b, sys.sm$ts_free c 
    WHERE a.tablespace_name = b.tablespace_name 
    AND a.tablespace_name = c.tablespace_name; 
      

  3.   

    我用 select owner,t.segment_name,t.segment_type,sum(t.bytes/1024/1024/1024) G from dba_segments t where t.owner='EDM_PRO' and t.segment_type='TABLE' group by owner,t.segment_name,t.segment_type order by G;语句查的那张表的G列值为5