ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 回收表空间的几个方法

回收表空间的几个方法

原创 Linux操作系统 作者:hicxlj 时间:2010-07-22 13:56:56 0 删除 编辑
回收表空间有以下几个方法:
1. drop and recreate
2.truncate  and restore with backup
3. alter table move tablespace;alter index XXX rebuild ...
4. exp/imp
5 alter table XXX deallocate ...

回收某个表使用空间的步骤:
(1)、选择某个表空间中超过N个blocks的segments,通过此语句可以看出那个表占用的空间大。

select segment_name,segment_type,blocks from dba_segments
  where tablespace_name='TABLESPACENAME'
  and blocks > N
  order by blocks;

(2)、分析表,得知表的一些信息

analyze table TABLENAME estimate statistics; 执行完后再执行

select initial_extent,next_extent,min_extents,blocks,empty_blocks from dba_tables
  where table_name='TEST' and wner='AA';

(3)、使用alter table ... deallocate unused 命令回收表的空间

例如: alter table AA.TEST deallocate unused keep 1k;

(4)、使用 alter tablespace TABLESPACENAME coalesce 命令回收表空间的空间。

(5)、可以使用dba_free_space视图查看表空间中的空闲空间信息。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/52280/viewspace-668736/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-09-10

  • 博文量
    19
  • 访问量
    46669