如何准确计算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空间实际上往往都是小于真实的使用情况的. 哇塞!真棒! 学习了!!! 学习下~~~~~~~~~~~~~~~~~~~~~ 点赞~~~ 火速学习,,谢谢分享 赞一个~~~
页:
[1]