在完成Select语句、create index等一些使用TEMP表空间的排序操作后,Oracle是会自动释放临时段。但有些有侯我们则会遇到临时段没
查看临时表空间的使用情况(gv_$temp_space_header视图必须在sys用户下才能查询)
gv_$temp_space_header视图记录了临时表空间的使用大小与未使用的大小
dba_temp_files视图的bytes字段记录的是临时表空间的总大小
select temp_used.tablespace_name,
total - used as "free",
total as "total",
round(nvl(total - used, 0) * 100 / total, 3) "free percent"
from (select tablespace_name, sum(bytes_used) / 1024 / 1024 used
from gv_$temp_space_header
group by tablespace_name) temp_used,
(select tablespace_name, sum(bytes) / 1024 / 1024 total
from dba_temp_files
group by tablespace_name) temp_total
where temp_used.tablespace_name = temp_total.tablespace_name
查找比较消耗临时表空间资源的sql语句
Select se.username,
se.sid,
su.extents,
su.blocks * to_number(rtrim(p.value)) as Space,
tablespace,
segtype,
sql_text
from v$sort_usage su, v$parameter p, v$session se, v$sql s
where p.name = 'db_block_size'
and su.session_addr = se.saddr
and s.hash_value = su.sqlhash
and s.address = su.sqladdr
order by se.username, se.sid
具体可参见

,










