Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1701585
  • 博文数量: 163
  • 博客积分: 10591
  • 博客等级: 上将
  • 技术积分: 1980
  • 用 户 组: 普通用户
  • 注册时间: 2006-08-08 18:17
文章分类

全部博文(163)

文章存档

2018年(1)

2012年(1)

2011年(47)

2010年(58)

2009年(21)

2008年(35)

分类: Oracle

2011-07-19 11:22:31

UNDO表空间大小评估参考:

要确定Oracle需要的UNDO 表空间的大小,需要以下三条信息: 

AUR :以秒为单位的UNDO_RETENTION

SQL> show parameter undo_retention;

BUPS:计算业务高峰期每秒产生undo数据块的个数

SQL> select max(undoblks / ((end_time - begin_time)*24*3600)) from v$undostat;

CDBS:得到数据块大小

SQL> show parameter db_block_size;

 

参考计算公式:

UndoSpace = UR * UPS * DBS + DBS * 24

参考计算UNDO表空间大小语句:

SELECT (UR * UPS * DBS + DBS * 24) / 1024 / 1024 AS "undo size(M)"

FROM (SELECT value AS UR FROM v$parameter WHERE name = 'undo_retention'),

     (SELECT max(undoblks / ((end_time - begin_time) * 24 * 3600)) AS UPS FROM v$undostat),

     (SELECT value AS DBS FROM v$parameter WHERE name = 'db_block_size');

 

如果现在UNDO表空间的大小小于计算出来的大小,建议将其增大至计算出来的推荐值值以上。

 

 

另外一种计算undo所需大小的方法:

    --计算undo表空间所需的大小

        SQL> SELECT (

              (SELECT MAX(undoblks)/600 * MAX(maxquerylen) FROM v$undostat) *

                (SELECT value FROM v$parameter WHERE name = 'db_block_size'))/1024/1024 as Need_Size

            FROM dual;

阅读(2401) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~