Re: 2 questions about transactions.

From: Jonathan Lewis <jonathan_at_jlcomp.demon.co.uk>
Date: Fri, 9 Dec 2011 06:29:09 -0000
Message-ID: <B48CDA73F486432FA2A73A44CA290715_at_Primary>


I am surprised by your comments in question 1:

    set transaction read only;
doesn't acquire an undo segment header, and doesn't generate any redo, so golden gate must be doing something more than simply scraping the redo log to deal with transaction activity.

I haven't looked recently, but the only place I could find a reference to the transaction name when I last looked was in the redo log itself.

Question 2: check v$transaction for the columns used_urec and used_ublk, these tell you how many changes have to be reversed out, and how many undo blocks have to be acquired to find the changes. The problem is that you
don't know how many undo blocks will have to be read from disc, and how many changes will require you to read a data block (table, undo, bitmap etc.)
so that the change can be applied.

Regards

Jonathan Lewis
http://jonathanlewis.wordpress.com

  • Original Message ----- From: "Dba DBA" <oracledbaquestions_at_gmail.com> To: "ORACLE-L" <oracle-l_at_freelists.org> Sent: Thursday, December 08, 2011 3:57 PM Subject: 2 questions about transactions.

Version: 10.2.0.5
Question 1:

SET TRANSACTION command

We are looking at logminer and noticing that one of our applications is issung a set transaction read write. The problem with this is that oracle records this as an open transacxtion. We are using golden gate and it has issues with long running transactions. So we have processes that connect to oracle, issue this, and then go idle. Before we go back to the developers, we want to dig up some more information. Their application probably doesn't need to do this. They may not even know they are doing it. It could be built into what ever library they are using to connect to the database. We noticed that set transaction is not recorded in v$sqlarea. Is there anywhere else other than logminer where we can dig up data on set transaction commands? I also noticed that you can name your transaction.. see link below. is that recorded in the data dictionary? I looked at the docs for v$rtransaction and I do not see a field for transaction name?

Question 2:

 I googled this before I asked, but I didn't really find what I was looking for. Is there a way to estimate how much work it will be to kill and rollback a session? I have looked at v$undostat, but I am not sure how to take the data I am seeing there and turn it into a rough estimate of how long it will take to rollback. I know it will be based on how busy the database is and it is application specific. Has anyone done any work with estimate how long it takes to roll something back:?

--

http://www.freelists.org/webpage/oracle-l



No virus found in this message.
Checked by AVG - www.avg.com
Version: 2012.0.1873 / Virus Database: 2102/4666 - Release Date: 12/07/11

--

http://www.freelists.org/webpage/oracle-l Received on Fri Dec 09 2011 - 00:29:09 CST

Original text of this message