Oracle FAQ Your Portal to the Oracle Knowledge Grid

Home -> Community -> Mailing Lists -> Oracle-L -> Re: high Rollback per transaction %: 96%

Re: high Rollback per transaction %: 96%

From: Jonathan Lewis <>
Date: Sat, 1 Sep 2007 09:35:30 +0100
Message-ID: <023401c7ec73$0e7b6330$0200a8c0@Primary>

You can read the text of the statspack package and reports in the varous sp*.sql in $ORACLE_HOME/rdbms/admin. I can't remember which file at the moment, but one of them shows you that

    'transactions' = "user commits" + "user rollbacks".

I wrote a short note some time ago describing the observations you've made:

What the note doesn't mention is 'transaction rollbacks' - and the fact that (a) transaction rollbacks can be system (or recursive), and (b) they don't always seem to update the statistic "rollback changes - undo records applied" properly when they are recursive.

This means you can't interpret the metric "properly" - your only option is to compare all four figures plus the "db block changes" and check that the work done in "real" rollbacks is sufficiently small compared to the work done in forward changes. (And, just to make it harder:

    db block changes = forward changes plus backward changes which means

    "real" forward change" = db block changes - "rollback changes - undo records applied"

There is an oddity with your stats, by the way:

    transaction rollbacks = 43,418,224
    rollback changes - undo records applied = 11984

In principle, a "real" transaction rollback ought to find at least one undo record
to apply. (The only case I can think of that might not would relate to incoming distributed queries which take an undo segment header slot, but don't generate undo - and I'd have to test that to find out what happened).

So for 43M transaction rollbacks, where have all the undo records gone ?


Jonathan Lewis

Author: Cost Based Oracle: Fundamentals

The Co-operative Oracle Users' FAQ

From: fmhabash <fmhabash_at_xxxxxxxxx>
To: oracle-l_at_xxxxxxxxxxxxx
Date: Wed, 29 Aug 2007 16:20:45 -0400

I have seen a DB where SP is showing 96% for this stat. It means is Oracle is rolling back almost every transaction. However, I can not believe that is totally true. Upon further investigation I found out these stats:
- user rollbacks = 68,826,302

Received on Sat Sep 01 2007 - 03:35:30 CDT

Original text of this message