This topic has been covered in several Oracle technical bulletins
and a few IOUG papers, so I'll present it very briefly. Any
transaction's rollback area can be measured by monitoring the
changes in the system statistics tables during its run. This means
that a valid reading requires that nothing else be running during the
time the test is taking place.
All you have to do is store the result of the following query
immediately before and after running your test:
SELECT SUM(WRITES) FROM V$ROLLSTAT;
When the transaction has completed, and you have the beginning
and ending values, the size of the rollback information generated
can be calculated:
ENDING_WRITES - BEGINNING_WRITES - 54 = ROLLBACK INFO GENERATED.
NOTE: The "54" is the rollback overhead that corresponds to the
amount of overhead required by a table insert operation. This assumes
that you're storing these values in tables. If you're just tracking
them on paper, then ignore this factor.
This will tell you how much rollback space you need to handle this
transaction; knowing how many transactions will be running at once
will give you an idea of how much space will be needed in your
ROLLBACKS tablespace.
Dropping Public Rollback Segments
Monday, October 19, 2009
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment