自动撤消管理

下面的信息适用于撤消查询A、B 和C。调整撤消表空间大小需要3 个方面的信息:
● (UR) UNDO_RETENTION,以秒计。
● (UPS) 每秒生成的撤消数据块数量。
● (DBS) 依据范围和文件大小变化的系统开销(db_block_size)
UndoSpace = (UR * (UPS * DBS) + DBS)
或者,当估计的数值等于0 时,就可以给系统开销(DBS)添加一个乘数(24),以便得出更合理的结果:
UndoSpace = [UR * (UPS * DBS)] + (DBS * 24)
可以从初始化文件UNDO_ RETENTION 和DB_BLOCK_SIZE 中获得这两个方面的信息。第三块公式需要查
询数据库。每秒生成的撤消数据块数量可以从V$UNDOSTAT 视图中获得,如下所示:
SELECT (SUM(undoblks))/ SUM ((end_time - begin_time) * 86400)
FROM v$undostat;
要将天数转换成秒数,可以乘以一天的秒数86400。查询结果返回每秒撤消数据块的数量。这个值需
要乘以每个撤消数据块的大小,这个大小与DB_BLOCK_SIZE 中定义的数据库数据块的大小相同。
下面的查询表示以执行时间内每秒生成的撤消数据块为基础的时间点评估。没有分配撤消空间时,可
以使用这个查询。如果这个时间帧在高活动过程中或者是撤消的最糟糕情况中,那么导出的结果就能提供
一个好的评估。
撤消查询A
SELECT (UR * (UPS * DBS) + DBS) 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
346
FROM v$parameter
WHERE name = 'db_block_size');
Bytes
----------
126630.554
如果撤消查询A 导出的结果由于在时间帧过程中的活动而偏低,那么就可以利用撤消查询B 来导出结
果,如下所示:
撤消查询B
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');
Bytes
----------
335717.434
在已经分配撤消空间并且数据库已经运行一段时间的情况下,下面的查询才有效:
撤消查询C
SELECT /*+ ordered */ d.file_name, v.status,
TO_CHAR((d.bytes / 1024 /1024), '99999990.000'),
NVL(TO_CHAR(((d.bytes - s.bytes) / 1024 /1024), '99999990.000'),
TO_CHAR((d.bytes / 1024 / 1024), '99999990.000')), d.file_id,
d.autoextensible, d.increment_by, d.maxblocks
FROM sys.dba_data_files d, v$datafile v,
(SELECT file_id, SUM(bytes) bytes
FROM sys.dba_free_space
WHERE tablespace_name ='NAME_OF_UNDO_TABLESPACE'
GROUP BY file_id) s
WHERE (s.file_id (+)= d.file_id)
AND (d.tablespace_name = 'NAME_OF_UNDO_TABLESPACE')
AND (d.file_name = v.name);
如果您捕获了撤消查询A 的顶点,那么撤消查询C 可能同样处于这个时间点(此时两个查询会遇到一
起)。
理想情况下,撤消段应该彼此分离,最好是与保存表和索引的磁盘分离(它们在这些表和索引上运行)。
如果您的系统很小,那么就不可能分离撤消段。同时,用户执行的DML 语句的数量应该确定最佳撤消段的
真实数量。这会随着情况不同而存在巨大变化(请在您的系统上使用自己感觉最好的)。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25198367/viewspace-707737/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/25198367/viewspace-707737/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值