zoukankan      html  css  js  c++  java
  • undo_retention:确定最优的撤销保留时间

    使用下面的公式来计算undo_retention参数的值:
    undo_retention=undo size/(db_block_size * undo_block_per_sec)

    可以通过提交下面的查询来计算数据库中实际产生的撤销数据:

    1. sys@ORCL> select sum(d.bytes) "undo"  
    2.   2    from v$datafile d, v$tablespace t, dba_tablespaces s  
    3.   3   where s.contents = 'UNDO'  
    4.   4     and s.status = 'ONLINE'  
    5.   5     and t.name = s.tablespace_name  
    6.   6     and d.ts# = t.ts#;  
    7.   
    8.       undo  
    9. ----------  
    10. 1048576000  


    可以通过下面的查询计算undo_block_per_sec:

    1. sys@ORCL> select max(undoblks / ((end_time - begin_time) * 3600 * 24)) "UNDO_BLOCK_PER_SEC"  
    2.   2    FROM v$undostat;  
    3.   
    4. UNDO_BLOCK_PER_SEC  
    5. ------------------  
    6.         .109816972   --因为这里是我的测试数据库。  
    1. sys@ORCL> show parameter db_block_size  
    2.   
    3. NAME                                 TYPE        VALUE  
    4. ------------------------------------ ----------- ------------------------------  
    5. db_block_size                        integer     8192  


    以秒来计算undo_retention参数的值:

    1. sys@ORCL> select 1048576000/(0.495726495726496*8192) from dual;  
    2.   
    3. 1048576000/(0.495726495726496*8192)  
    4. -----------------------------------  
    5.                          258206.897  


    v$undostat视图包含了数据库如何来使用撤销空间的统计信息,以及运行时间最长的查询等信息。可以使用这些信息计算当前数据库所处理的工作负载的撤销空间大小。v$undostat视图中每一行显示十分钟时间间隔的撤销统计信息。表中最多包含576行数据,每一行记录十分钟。因此,最多可以查看四天内的撤销空间使用情况。
    BEGIN_TIME:时间段的起始时间。
    END_TIME:时间段的截止时间。
    UNDOBLKS:在十分钟的间隔内数据库所消耗的撤销数据块数量。
    TXNCOUNT:在十分钟时间间隔内所执行的事务数。
    MAXQUERYLEN:显示了在十分钟间隔内该实例上执行的,耗时最长的查询所花的时间(单位为秒)。
    MAXQUERYID:时间间隔内运行时间最长的SQL语句的标识符。
    NOSPACEERRCNT:数据库在撤销表空间中,因为整个空间都被活动事务所占用,因而没有足够空间来存放新撤销数据的次数。
    TUNED_UNDORETENTION:数据库在提交撤销所属事务后,将会保留撤销数据的时长,单位为秒。

    1. sys@ORCL> select to_char(begin_time, 'hh24:mi:ss') BEGIN_TIME,  
    2.   2         to_char(end_time, 'hh24:mi:ss') END_TIME,  
    3.   3         maxquerylen,  
    4.   4         nospaceerrcnt,  
    5.   5         tuned_undoretention  
    6.   6    from v$undostat;  
    7.   
    8. BEGIN_TI END_TIME MAXQUERYLEN NOSPACEERRCNT TUNED_UNDORETENTION  
    9. -------- -------- ----------- ------------- -------------------  
    10. 17:37:31 17:43:00        1281             0                2062  
    11. 17:27:31 17:37:31         978             0                1759  
    12. 17:17:31 17:27:31         372             0                1153  
    13. 17:07:31 17:17:31         974             0                1755  
    14. 16:57:31 17:07:31         368             0                1151  
    15. 16:47:31 16:57:31         968             0                1809  
    16. 16:37:31 16:47:31         363             0                1205  
    17. 16:27:31 16:37:31         961             0                1805  
    18. 16:17:31 16:27:31         358             0                1200  
    19. 16:07:31 16:17:31         957             0                1799  
    20. 15:57:31 16:07:31         353             0                1195  
    21. 15:47:31 15:57:31         953             0                1794  
    22. 15:37:31 15:47:31         349             0                1190  
    23. 15:27:31 15:37:31         948             0                1790  
    24. 15:17:31 15:27:31         342             0                1185  
    25.   
    26. 已选择15行。  

    oracle在一个给定的时间段,会根据执行时间最长的查询来提高或降低撤销保留时间。

  • 相关阅读:
    NYOJ题目100 1的个数
    NYOJ题目98成绩转换
    NYOJ题目97兄弟郊游问题
    NYOJ题目96 n-1位数
    NYOJ题目77开灯问题
    NYOJ题目75日期计算
    NYOJ题目74小学生算术
    NYOJ题目65另一种阶乘问题
    NYOJ题目64鸡兔同笼
    NYOJ题目62笨小熊
  • 原文地址:https://www.cnblogs.com/lcword/p/5982588.html
Copyright © 2011-2022 走看看