oracle表空间异常大

以前的oracle数据库导出来不到100M,可是这次上线前导数据库,dmp文件确到了500M+。

1、肯定有很多垃圾数据在,查阅文档后找到查看表空间物理大小的语句

select * from user_segments;

当存大文本时会新建一些“临时表”。这些表占空间极大。

 查看物理表所占空间大小:


analyze table FILE_MANAGEMENT compute statistics;
select num_rows * avg_row_len
from user_tables
where table_name = 'SYS_FILE';

2、这时要先看临时表对应哪个物理表的字段:

select * from dba_lobs where segment_name like 'SYS_LOB0000096578C00019$$';

3、然后清空该物理表,最后释放lob类型数据的空间

alter table FILE_MANAGEMENT move tablespace CCP1115 lob(FILEBLOB) store as (tablespace CCP1115)

4、最后对该表重建索引

alter index ***** rebuild;

亲测可用,但是记得要先清物理表!!!切记

参考文档:https://www.linuxidc.com/Linux/2012-10/73026.htm

原文地址:https://www.cnblogs.com/PPBoy/p/12190941.html