现在在设计一套OLTP系统,主要是数据insert,update,delete,所以注意力放在了回滚段上,今天参考了一篇文档,提到调整会滚段的一些参数:
公式1:
回退段数量
n= transaction/transactions_per_rollback_segment
transaction 为ORACLE 系统参数,系统中允许并发处理的最大transaction 数
transactions_per_rollback_segment 为 ORACLE 参数,每个回退段允许同时写入的最大 transaction 数
公式2:
最佳扩展值
optimal = initial + n* next
SQL> select name,value from v$parameter where name like '%transactions%';
NAME
VALUE
---------------------------------------- ------------------------------
transactions
187
transactions_per_rollback_segment5
SQL> select 187/5 from dual ;
187/5
----------
37.4
SQL> select 393216+38*1048576 from dual ;
393216+38*1048576
-----------------
40239104
SQL> alter rollback segment system storage (next 1m optimal 40239104) ;
Rollback segment altered
SQL>
在
select * from v$waitstat where class='undo header';
和
select usn,extents,waits from v$rollstat;
中waits 大于0 时候,或者出现回滚段头部数据块争用时候 我们需要增加会滚段的大小
我想知道,在什么情况下,才需要调整system 的这些参数呢??
初始分配大小,NEXT的数值如何结合实际业务确定到底给多大?
系统采用9I,回滚段采用自动管理了,需要调整这些参数吗 ?
|