SELECT tablespace_name,STATUS, SUM(BYTES)/1024/1024/1024 FROM DBA_UNDO_EXTENTS group by tablespace_name,STATUS order by tablespace_name,status;
查看回滚段正在运行的占用情况:
SELECT s.inst_id,
s.username,
s.sid,
pr.PID,
s.OSUSER,
s.MACHINE,
s.PROGRAM,
rs.segment_id,
r.usn,
rs.segment_name,
r.rssize/1024/1024,
sq.sql_text
FROM gv$transaction t, gv$session s, gv$rollstat r, dba_rollback_segs rs ,gv$sqltext sq,v$process pr
WHERE s.saddr = t.ses_addr
AND t.xidusn = r.usn
AND rs.segment_id = t.xidusn
AND s.sql_address=sq.address
AND s.sql_hash_value = sq.hash_value
AND s.PADDR=pr.ADDR
ORDER BY t.used_ublk DESC ,sq.PIECE
select a.ksppinm name,b.ksppstvl value,a.ksppdesc description
from x$ksppi a,x$ksppcv b
where a.indx = b.indx
and a.ksppinm like '%_undo_autotune%';
http://blog.csdn.net/dba_waterbin/article/details/8646982
alter system set "_undo_autotune" = false scope=both sid='*';
_undo_autotune=true,undo_retention不再适用
Oracle会自行决定tuned_undo_retention,然后试图增大undo tablespace。
从10.2版本开始,oracle默认采用自动调整undo retention的方法
根据你undo tablespace的大小以及系统的繁忙程度(v$undostat中信息)自动调整undo_retention参数
所以在10g的数据库上你会经常发现undo tablespace永远是满的
因为当你undo tablespace有空闲空间时,系统自动调大undo_retention来保留更多的undo blocks
这一方法有利于时间长的查询,但是对于典型的OLTP系统来说不太适用