--查询临时表空间
select f.tablespace_name,
d.file_name "tempfile name",
round((f.bytes_free + f.bytes_used) / 1024 /1024, 2) "total mb",
round(((f.bytes_free + f.bytes_used) -nvl(p.bytes_used, 0)) / 1024 / 1024, 2) "free mb" ,
round(nvl(p.bytes_used, 0)/ 1024 / 1024, 2)"used mb",
round((round(nvl(p.bytes_used, 0)/ 1024 /1024, 2)/round((f.bytes_free + f.bytes_used) / 1024 / 1024, 2))*100,2) as"used_rate(%)"
from sys.v_$temp_space_header f,dba_temp_files d, sys.v_$temp_extent_pool p
where f.tablespace_name(+) = d.tablespace_name
and f.file_id(+) = d.file_id
and p.file_id(+) =d.file_id;
执行temp 表空间的online shrink 操作:
--将临时表空间 temp_data 压缩到 100m 如果不指定 keep 会压缩到最小2m 建议加上 keep
alter tablespace temp_data shrink space keep 100m;
也可以对某个 表空间中的数据文件进行压缩
select * from dba_temp_files; --查数据文件
alter tablespace temp_ha_wxzj_data shrink tempfile 'c:\app\administrator\oradata\orcl\temp_ha_wxzj_data.dbf' keep 50m
---------------------------------------------------------------------------------------------------------------------------------