RE: Rollback per transaction %:73 %?

  • From: Tanel Poder <tanel.poder.003@xxxxxxx>
  • To: VIVEK_SHARMA@xxxxxxxxxxx, "'ORACLE-L'" <oracle-l@xxxxxxxxxxxxx>
  • Date: Wed, 30 Jul 2008 23:22:53 +0800

Rollbacks per transaction % is calculated using "transaction rollbacks /
transaction rollbacks + transaction commits" formula I think. As this is a
ratio, we need more info like how many transactions did you have during AWR
sample period.
 
There is also the question how much do those rollbacks affect your
application response time... which is not trivial to find out as the
rollback generates similar wait events as normal processing (physical reads,
log file sync's and CPU usage).
 
 
Anyway, if you have lots of transactions and 73% of them roll back, you have
a lot of waste.
 
Couple reasons that come into my mind are:
 
1) Bad application design / coding practices (e.g. insert -> if failed ->
then update)
 
2) ASSM bugs (failed space allocations which are rolled back)
 
 
If all you have is AWR data then check the "transaction rollbacks" vs "user
rollbacks" stats as first step just to make sure the application code is not
manually issuing all those rollbacks (application-initiated rollbacks are
counted in "user rollbacks" in addition to "transaction rollbacks")
 
As the next step I would pick a session causing most of the transaction
rollbacks (which you can easily identify using Snapper for example) and see
what it's doing (e.g. what SQL or PL/SQL code its running). 
 
If nothing obvious shows up (like you don't see such "insert->if
failed->then update" sequence I mentioned above) you need to identify where
else do these transaction rollbacks come from (like a failed/buggy ASSM
space allocation operation). 
One way to find this out is getting process stack traces - but the best
method depends on how frequent those rollbacks are (many rollbacks per
second?) and whether thats a production system you're investigating.

--
Regards,
Tanel Poder
 <http://blog.tanelpoder.com/> http://blog.tanelpoder.com


 



  _____  

From: oracle-l-bounce@xxxxxxxxxxxxx [mailto:oracle-l-bounce@xxxxxxxxxxxxx]
On Behalf Of VIVEK_SHARMA
Sent: Wednesday, July 30, 2008 15:32
To: 'ORACLE-L'
Subject: RE: Rollback per transaction %:73 %? 



Folks

 

Is "Rollback per transaction %: 73.06" under "Load Profile" section of AWR
Report abnormally High?  ..., If so, what does this imply? ... How is the
issue to be approached? . Any values for this which are generally considered
acceptable as per best practices?

 

NOTE - This was observed during a Benchmark run of a Banking Java
Application using Oracle thin driver to connect to the Database. Dedicated
Server process connections to Database. OLTP Nature of Transactions used.

 

Cheers & Advice pls

 

Vivek

 

P.S. AWR Stats:-

 

Elapsed 16.71 (mins)

Load Profile 

 


% Blocks changed per Read:

0.66

Recursive Call %:

21.24


Rollback per transaction %:

73.06

Rows per Sort:

152.74

 

P.P.S. CONFIG:-

HP-UX

Oracle 10.2

 


**************** CAUTION - Disclaimer *****************

This e-mail contains PRIVILEGED AND CONFIDENTIAL INFORMATION intended solely


for the use of the addressee(s). If you are not the intended recipient,
please 

notify the sender by e-mail and delete the original message. Further, you
are not 

to copy, disclose, or distribute this e-mail or its contents to any other
person and 

any such actions are unlawful. This e-mail may contain viruses. Infosys has
taken 

every reasonable precaution to minimize this risk, but is not liable for any
damage 

you may sustain as a result of any virus in this e-mail. You should carry
out your 

own virus checks before opening the e-mail or attachment. Infosys reserves
the 

right to monitor and review the content of all messages sent to or from this
e-mail 

address. Messages sent to or from this e-mail address may be stored on the 

Infosys e-mail system.

***INFOSYS******** End of Disclaimer ********INFOSYS***

Other related posts: