|
计算事务回滚段大小
如何测试一个事务undo信息的大小:
drop table stats$undo_begin;
drop table stats$undo_end;
--create the set up tables
create table stats$undo_begin(writes number);
create table stats$undo_end(writes number);
--start values
insert into stats$undo_begin
select sum(writes) from v$rollstat
where usn=(select usn from v$rollname where name='R04');
commit;
set transaction use rollback segment R04;
--execute large transaction
@large_batch_job;
insert into stats$undo_end
select sum(writes) from v$rollstat
where usn=(select usn from v$rollname where name='R04');
--end values
select (e.writes-b.writes) undo_generated
from stats$undo_begin b,stats$undo_end e
initora.ora文件中参数transactions_per_rollback_segment 参数决定一个回滚段可进入事务数目。
回滚段数目及大小的确定方法:
size_of_rollback=transactions_per_rollback_segment*每一事务平均大小
number_of_rollback=transactions(并发事务个数)/transaction_pre_rollback
说明:事务并发个数授initora.ora中参数transactions限制。 |
|