导读:
确定当前系统当前事务量下 Undo Tablespace 大小的公式:
UndoSpace = UR * UPS + overhead
其中:
UR = UNDO_RETENTION
UPS = 每秒使用的 UNDO 块数量
overhead = 一些冗余的数据块数量,比如:transaction tables, bitmaps 等等
算出来的是 Undo Tablespace 需要的 BLOCK 数量,再乘以 db_block_size 就是需要的字节数了。
google 了一下,网上有关于该公式的具体使用方法。其中 UPS 可以通过 V$UNDOSTAT 计算的到,overhead 一般取 24。
本文转自
http://www.heysky.net/archives/2006/03/undotablespace.html
http://www.orafaq.com/node/1888
确定当前系统当前事务量下 Undo Tablespace 大小的公式:
UndoSpace = UR * UPS + overhead
其中:
UR = UNDO_RETENTION
UPS = 每秒使用的 UNDO 块数量
overhead = 一些冗余的数据块数量,比如:transaction tables, bitmaps 等等
算出来的是 Undo Tablespace 需要的 BLOCK 数量,再乘以 db_block_size 就是需要的字节数了。
google 了一下,网上有关于该公式的具体使用方法。其中 UPS 可以通过 V$UNDOSTAT 计算的到,overhead 一般取 24。
这样可以得到计算 Undo Tablespace 的 SQL :
SELECT (ur * (ups * dbs)) + (dbs * 24) AS "Bytes"
FROM (SELECT VALUE AS ur
FROM v$parameter
WHERE NAME = 'undo_retention'),
(SELECT (SUM (undoblks) / SUM (((end_time - begin_time) * 86400))
) AS ups
FROM v$undostat),
(SELECT VALUE AS dbs
FROM v$parameter
WHERE NAME = 'db_block_size');
FROM (SELECT VALUE AS ur
FROM v$parameter
WHERE NAME = 'undo_retention'),
(SELECT (SUM (undoblks) / SUM (((end_time - begin_time) * 86400))
) AS ups
FROM v$undostat),
(SELECT VALUE AS dbs
FROM v$parameter
WHERE NAME = 'db_block_size');
本文转自
http://www.heysky.net/archives/2006/03/undotablespace.html
http://www.orafaq.com/node/1888
本文详细解析了如何根据当前系统事务量计算UndoTablespace大小的SQL公式,并提供了具体的使用方法,包括UPS的获取方式和overhead的取值。

被折叠的 条评论
为什么被折叠?



