undo_retention:确定最优的撤销保留时间

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

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

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

      undo
----------
1048576000

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

sys@ORCL> select max(undoblks / ((end_time - begin_time) * 3600 * 24)) "UNDO_BLOCK_PER_SEC"
  2    FROM v$undostat;

UNDO_BLOCK_PER_SEC
------------------
        .109816972   --因为这里是我的测试数据库。

sys@ORCL> show parameter db_block_size

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_block_size                        integer     8192

以秒来计算undo_retention参数的值:

sys@ORCL> select 1048576000/(0.495726495726496*8192) from dual;

1048576000/(0.495726495726496*8192)
-----------------------------------
                         258206.897


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

sys@ORCL> select to_char(begin_time, 'hh24:mi:ss') BEGIN_TIME,
  2         to_char(end_time, 'hh24:mi:ss') END_TIME,
  3         maxquerylen,
  4         nospaceerrcnt,
  5         tuned_undoretention
  6    from v$undostat;

BEGIN_TI END_TIME MAXQUERYLEN NOSPACEERRCNT TUNED_UNDORETENTION
-------- -------- ----------- ------------- -------------------
17:37:31 17:43:00        1281             0                2062
17:27:31 17:37:31         978             0                1759
17:17:31 17:27:31         372             0                1153
17:07:31 17:17:31         974             0                1755
16:57:31 17:07:31         368             0                1151
16:47:31 16:57:31         968             0                1809
16:37:31 16:47:31         363             0                1205
16:27:31 16:37:31         961             0                1805
16:17:31 16:27:31         358             0                1200
16:07:31 16:17:31         957             0                1799
15:57:31 16:07:31         353             0                1195
15:47:31 15:57:31         953             0                1794
15:37:31 15:47:31         349             0                1190
15:27:31 15:37:31         948             0                1790
15:17:31 15:27:31         342             0                1185

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值