ALLSTARS_ORACLE 发表于 2014-2-5 17:13:14

如何准确计算undo表空间

如何准确计算undo表空间

网上查询undo空间计算,普遍的做法均是如下:


UNDO表空间大小评估参考:

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

A、UR :以秒为单位的UNDO_RETENTION

SQL> show parameter undo_retention;

B、UPS:计算业务高峰期每秒产生undo数据块的个数
SQL> select max(undoblks / ((end_time - begin_time)*24*3600)) from v$undostat;

C、DBS:得到数据块大小
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');


根据 note 461480.1 - "What is Automatic UNDO Retention (10g New Feature)? Explain.", 11g中undo的retention是不断变化的(不小于undo_retention参数指定的值);所以根据v$parameter拿到的undo_retention来计算undo空间实际上往往都是小于真实的使用情况的.

licharles 发表于 2014-2-7 13:14:25

哇塞!真棒!

iloracle 发表于 2014-2-10 09:17:53

学习了!!!

贝壳shell 发表于 2014-2-20 16:53:29

学习下~~~~~~~~~~~~~~~~~~~~~

不了峰 发表于 2014-2-24 10:55:46

点赞~~~

了了 发表于 2014-2-24 15:05:24

火速学习,,谢谢分享

winkey 发表于 2014-3-1 14:06:21

赞一个~~~
页: [1]
查看完整版本: 如何准确计算undo表空间