日期:2014-05-16  浏览次数:20390 次

oracle整理碎片
删除一张表,完全的释放空间:
truncate   table   table_name;

碎片整理命令:
  ALTER   TABLESPACE   tabspace_name   COALESCE;


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


--找碎片,User_Extents 用户表空间扩展
select segment_name,sum(bytes)/1024/1024 from User_Extents t
group by segment_name having sum(bytes)/1024/1024>10
order by sum(bytes)/1024/1024 desc;
--dba_extents   DBA表空间扩展
select   *   from   dba_extents   where   segement_name=你的表名 '

通过dba_extents看到了,一个segment_name下可以由相同或不同的extent_id组成,同时相同的extent_id也可以由不同的block_id组成