关于undo的统计 包括最长执行的sql语句等
set lines 120 set pages 999 clear col set termout off set trimout on set trimspool on connect / as sysdba alter session set nls_date_format='dd-hh24:mi'; spool undostatistics.out prompt prompt ############## RUNTIME ############## prompt col rdate head "Run Time" select sysdate rdate from dual; col current_scn head "SCN Now" col start_date head "Trans Started" col start_scn head "SCN for Trans" col ses_addr head "ADDR" prompt prompt ############## Historical V$UNDOSTAT (Last 2 Days) ############## prompt col end_time format a18 Head "Date/Time" col maxq format 999,999 head "Query|Maximum|Minutes" col maxquerysqlid head "SqlID" col undotsn format 999,999 head "TBS" col undoblks format 999,999,999 head "Undo|Blocks" col txncount format 999,999,999 head "# of|Trans" col unexpiredblks format 999,999,999 head "# of Unexpired" col expiredblks format 999,999,999 head "# of Expired" col tuned format 999,999 head "Tuned Retention|(Minutes)" select BEGIN_TIME, end_time, round(maxquerylen / 60, 0) maxq, --最长sql执行时间 maxquerysqlid, --最长sql执行时间的sqlid undotsn, --最后活动的undo tablespace 编号 undoblks, --消耗的undo block size txncount, --时段内的食物数量 unexpiredblks, --未过期的 expiredblks, --时段内未过期的undp block总数 round(tuned_undoretention / 60, 0) Tuned --auto undoundoretention tuned之后的undo_retention from dba_hist_undostat where end_time > sysdate - 2 order by 1 / prompt prompt ############## RECENT MISSES FOR UNDO (Last 2 Days) ############## prompt clear col set lines 500 --四天内语句执行时长>自动调整的undo_retention select * from v$undostat where maxquerylen > tuned_undoretention and end_time > sysdate-2 order by 2 / --awr中语句执行时长>自动调整的undo_retention select * from sys.wrh$_undostat where maxquerylen > tuned_undoretention and end_time > sysdate-2 order by 2 / prompt prompt ############## AUTO-TUNING TUNE-DOWN DATA ############## prompt ############## ROLLBACK DATA (Since Startup) ############## prompt col name format a60 head "Name" col value format 999,999,999 head "Counters" select name, value from v$sysstat where name like '%down retention%' or name like 'une down%' or name like '%undo segment%' or name like '%rollback%' or name like '%undo record%' / prompt prompt ############## Long Running Query History ############## prompt col end_time head "Date" col maxquerysqlid head "SQL ID" col runawayquerysqlid format a15 head "Runaway SQL ID" col results format a35 word_wrapped head "Space Issues" col status head "Status" col newret head "Tuned Down|Retention" select end_time, maxquerysqlid, runawayquerysqlid, status, decode(status,1,'Slot Active',4,'Reached Best Retention',5,'Reached Best Retention', 8, 'Runaway Query',9,'Runaway Query-Active',10,'Space Pressure', 11,'Space Pressure Currently', 16, 'Tuned Down (to undo_retention) due to Space Pressure', 17,'Tuned Down (to undo_retention) due to Space Pressure-Active', 18, 'Tuning Down due to Runaway', 19, 'Tuning Down due to Runaway-Active', 28, 'Runaway tuned down to last tune down value', 29, 'Runaway tuned down to last tune down value', 32, 'Max Tuned Down - Not Auto-Tuning', 33, 'Max Tuned Down - Not Auto-Tuning (Active)', 37, 'Max Tuned Down - Not Auto-Tuning (Active)', 38, 'Max Tuned Down - Not Auto-Tuning', 39, 'Max Tuned Down - Not Auto-Tuning (Active)', 40, 'Max Tuned Down - Not Auto-Tuning', 41, 'Max Tuned Down - Not Auto-Tuning (Active)', 42, 'Max Tuned Down - Not Auto-Tuning', 44, 'Max Tuned Down - Not Auto-Tuning', 45, 'Max Tuned Down - Not Auto-Tuning (Active)', 'Other ('||status||')') Results, spcprs_retention NewRet from sys.wrh$_undostat where status > 1 / prompt prompt ############## Details on Long Run Queries ############## prompt col sql_fulltext head "SQL Text" Col sql_id heading "SQL ID" select sql_id, sql_fulltext, last_load_time "Last Load", --最后一次执行时间 round(elapsed_time/60/60/24,0) "Elapsed Days" --执行了多久 from v$sql where sql_id in (select maxquerysqlid from sys.wrh$_undostat where status > 1) / spool off set termout on set trimout off set trimspool off clear col