Oracle回收表空間的幾個方法?
回收表空間有以下幾個方法:
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視圖查看表空間中的空閑空間信息。