查询临时表空间已经分配的空间和可用空间:
select tablespace_name
,tablespace_size/1024/1024 mb_size
,allocated_space/1024/1024 mb_alloc
,free_space/1024/1204 mb_free
from dba_temp_free_space;
查询某个会话使用临时表空间的情况:
SELECT s.sid,s.serial#,s.username
,p.spid,s.module,p.program
,SUM(su.blocks) * tbsp.block_size/1024/1024 mb_used
,su.tablespace
FROM
v$sort_usage su
,v$session s
,dba_tablespaces tbsp
,v$process p
WHERE
su.session_addr = s.saddr
AND
su.tablespace = tbsp.tablespace_name
AND
s.paddr = p.addr
GROUP BY
s.sid,s.serial#,s.username,s.osuser,p.spid,s.module,
p.program,tbsp.block_size,su.tablespace
ORDER BY
s.sid;
发现临时表空间不足之后,可以采用以下方法来解决:
1.resize
alter database tempfile 'file' resize xxg;
2.add tempfile
alter database add tempfile 'file' size xxg;