检查及设置合理的undo表空间(二)

2014-11-24 16:53:50 · 作者: · 浏览: 1
Session altered. - Undo Analysis started at : 24/10/2013 14:49:07 - -------------------------------------------------- NOTE:The following analysis is based upon the database workload during the period - Begin Time : 17/10/2013 14:49:07 End Time : 24/10/2013 14:49:07 Current Undo Configuration -------------------------- Current undo tablespace : UNDOTBS Current undo tablespace size (datafile size now) : 20M Current undo tablespace size (consider autoextend) : 20M AUTOEXTEND for undo tablespace is : OFF Current undo retention : 900 UNDO GUARANTEE is set to : FALSE Undo Advisor Summary --------------------------- Finding 1:Undo Tablespace is under pressure. Recommendation 1:Size undo tablespace to 48 MB Undo Space Recommendation ------------------------- Minimum Recommendation : Size undo tablespace to 48 MB Rationale : Increase undo tablespace size so that long running queries will not fail Recommended Undo Tablespace Size : 48M --->这里给出了undo的建议值 Retention Recommendation ------------------------ --->下面是一些和undo相关的建议,如可能的保留时间等等 The best possible retention with current configuration is : 306 Seconds The longest running query ran for : 52 Seconds The undo retention required to avoid errors is : 52 Seconds PL/SQL procedure successfully completed. 3、获得undo信息及建议值脚本 [sql] --脚本来自Oracle. 参考Metalink: Doc ID 1579035.1 --以下脚本适用于Oracle 10g以上版本 SET SERVEROUTPUT ON SET LINES 600 ALTER SESSION SET NLS_DATE_FORMAT = 'DD/MM/YYYY HH24:MI:SS'; DECLARE v_analyse_start_time DATE := SYSDATE - 7; v_analyse_end_time DATE := SYSDATE; v_cur_dt DATE; v_un
do_info_ret BOOLEAN; v_cur_undo_mb NUMBER; v_undo_tbs_name VARCHAR2(100); v_undo_tbs_size NUMBER; v_undo_autoext BOOLEAN; v_undo_retention NUMBER(6); v_undo_guarantee BOOLEAN; v_instance_number NUMBER; v_undo_advisor_advice VARCHAR2(100); v_undo_health_ret NUMBER; v_problem VARCHAR2(1000); v_recommendation VARCHAR2(1000); v_rationale VARCHAR2(1000); v_retention NUMBER; v_utbsize NUMBER; v_best_retention NUMBER; v_longest_query NUMBER; v_required_retention NUMBER; BEGIN select sysdate into v_cur_dt from dual; DBMS_OUTPUT.PUT_LINE(CHR(9)); DBMS_OUTPUT.PUT_LINE('- Undo Analysis started at : ' || v_cur_dt || ' -'); DBMS_OUTPUT.PUT_LINE('--------------------------------------------------'); v_undo_info_ret := DBMS_UNDO_ADV.UNDO_INFO(v_undo_tbs_name, v_undo_tbs_size, v_undo_autoext, v_undo_retention, v_undo_guarantee); select sum(bytes)/1024/1024 into v_cur_undo_mb from dba_data_files where tablespace_name = v_undo_tbs_name; DBMS_OUTPUT.PUT_LINE('NOTE:The following analysis is based upon the database workload during the period -'); DBMS_OUTPUT.PUT_LINE('Begin Time : ' || v_analyse_start_time); DBMS_OUTPUT.PUT_LINE('End Time : ' || v_analyse_end_time); DBMS_OUTPUT.PUT_LINE(CHR(9)); DBMS_OUTPUT.PUT_LINE('Current Undo Configuration'); DBMS_OUTPUT.PUT_LINE('--------------------------'); DBMS_OUTPUT.PUT_LINE(RPAD('Current undo tablespace',55) || ' : ' || v_undo_tbs_name); DBMS_OUTPUT.PUT_LINE(RPAD('Current undo tablespace size (datafile size now) ',55) || ' : ' || v_cur_undo_mb || 'M'); DBMS_OUTPUT.PUT_LINE(RPAD('Current undo tablespace size (consider autoextend) ',55) || ' : ' || v_undo_tbs_size || 'M'); IF V_UND