oracle 回收表空间的数据文件大小

查看表空间的使用情况:

select a.tablespace_name,a.bytes/1024/1024 "Sum MB",(a.bytes-b.bytes)/1024/1024 "used MB",b.bytes/1024/1024 "free MB", 
round(((a.bytes-b.bytes)/a.bytes)*100,2) "percent_used" 
from 
(select tablespace_name,sum(bytes) bytes from dba_data_files group by tablespace_name) a, 
(select tablespace_name,sum(bytes) bytes,max(bytes) largest from dba_free_space group by tablespace_name) b 
where a.tablespace_name=b.tablespace_name 
order by ((a.bytes-b.bytes)/a.bytes) desc 

回收表空间数据文件

select   'alter database datafile '''||a.file_name||''' resize '    ||round(a.filesize - (a.filesize - c.hwmsize-100) *0.8)||'M;',  
a.filesize,c.hwmsize
from ( select file_id,file_name,round(bytes/1024/1024) filesize from dba_data_files ) a, ( select file_id,round(max(block_id)*8/1024) HWMsize from dba_extents group by file_id) c where a.file_id = c.file_id and a.filesize - c.hwmsize > 100

 执行回收reize数据文件的sql

alter database datafile '/home/oracledb/dbf/data_rhipgz.dbf' resize 2816M;
alter database datafile '/home/oracledb/dbf/medical_supplies_demo.dbf' resize 126M;
alter database datafile '/home/oracledb/dbf/ids_test.dbf' resize 118M;
alter database datafile '/home/oracle/oracledb/oracledb/dbf/cis_pharmacy.dbf' resize 3646M;
alter database datafile '/u01/app/oracle/oradata/orcl/data_pivas_nj.dbf' resize 2177M;
alter database datafile '/home/oracledb/dbf/medical_supplies_demo2.dbf' resize 172M;
alter database datafile '/home/oracledb/dbf/DATA_CIS_TEST_04.dbf' resize 28703M;
alter database datafile '/home/oracledb/dbf/DATA_CIS_TEST_07.dbf' resize 28754M;
alter database datafile '/home/oracledb/dbf/rhip.dbf' resize 105M;
alter database datafile '/home/oracledb/dbf/hip_tend.dbf' resize 1529M; 

原文地址:https://www.cnblogs.com/vipsoft/p/9516945.html