temp和undo常用的查詢命令

2021-08-08 10:39:05 字數 1182 閱讀 4452

1.檢視消耗臨時表空間比較大的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;

2.檢視當前sql消耗臨時表空間大小

select sess.sid, segtype, blocks * 8 / 1000 "mb", sql_text

from v$sort_usage sort, v$session sess, v$sql sql

where sort.session_addr = sess.saddr

and sql.address = sess.sql_address

order by blocks desc;

undo已經使用的部分分為不可**的unexpire和可**的expire部分

1.檢視undo表空間expire和unexpire部分的大小。

select tablespace_name "undo表空間名",

sum(bytes)/1024/1024 "占用空間大小(m)",

status "使用狀態"

from  dba_undo_extents 

group by tablespace_name,status;

2.針對居高不下的undo表空間優化

如果undo表空間使用率一直很高,可以考慮將undo設定為自動擴充套件,並設定maxsize。

這樣就會讓undo啟用最小undo_retention值。

alter database datafile '/oradata/ora/undotbs01.dbf' autoextend on next 5m maxsize 1024m;

對ORACLE的TEMP和UNDO空間的操作集合

1 查詢temp表空間大小 select temp used.tablespace name,total used as free total as total round nvl total used,0 100 total,3 free percent from select tablespac...

redo和undo的區別

redo undo datafile insert一條記錄時,表跟undo的資訊都會放進 redo 中,在commit 或之前,redo 的資訊會放進硬碟上.故障時,redo 便可恢復那些已經commit 了的資料.redo 每次操作都先記錄到redo日誌中,當出現例項故障 像斷電 導致資料未能更新...

redo和undo的區別

redo undo datafile insert一條記錄時,表跟undo的資訊都會放進 redo 中,在commit 或之前,redo 的資訊會放進硬碟上.故障時,redo 便可恢復那些已經commit 了的資料.redo 每次操作都先記錄到redo日誌中,當出現例項故障 像斷電 導致資料未能更新...