Re: Effective Oracle by Design - p259 - 260 - confused, is there a mistake?

  • From: <t_adolph@xxxxxxxxxxx>
  • To: "Mark W. Farnham" <mwf@xxxxxxxx>, "ORACLE-L" <oracle-l@xxxxxxxxxxxxx>
  • Date: Wed, 2 Nov 2005 12:34:50 +0100

So far my understanding's matched all feedback, just can't match that with the 
description/example in the book.
  ----- Original Message ----- 
  From: Mark W. Farnham 
  To: t_adolph@xxxxxxxxxxx ; ORACLE-L 
  Sent: Wednesday, November 02, 2005 12:16 PM
  Subject: RE: Effective Oracle by Design - p259 - 260 - confused, is there a 
mistake?


  It all depends on when Session B's query is started. If Session B's query 
starts before at least one of the commits, then to preserve read consistency it 
must either acquire and apply the relevant undo to create a block image 
consistent with the time of the start of the Session B query or it must report 
snapshot too old. A commit does not "throw away" undo, but rather releases it 
as no longer required by an updating transaction. When and if "undo" is 
actually discarded from all available sources grows increasingly complex with 
flashback (not relevant to 9.2.x). It varies qualitatively from keeping it 
until the space consumed limit is reached to a new mode that is akin logically 
to redo being unable to wrap to the next log in that it will hang instead of 
dying and will resume if you add space. Oracle has achieved a laudable balance 
in making the default usage trivial to configure yet allowing you to tailor 
behavior precisely to satisfy particular requirements.
    -----Original Message-----
    From: oracle-l-bounce@xxxxxxxxxxxxx 
[mailto:oracle-l-bounce@xxxxxxxxxxxxx]On Behalf Of t_adolph@xxxxxxxxxxx
    Sent: Wednesday, November 02, 2005 5:06 AM
    To: ORACLE-L
    Subject: Effective Oracle by Design - p259 - 260 - confused, is there a 
mistake?


    Hi All,

    A question for those of you who have read Effective Oracle by Design by 
Thomas Kyte:

    Chpt 5, page 259 - 260: Tom is explaining that undo is read for read for 
read consistency....

    <snip>
    Now this makes sense to me as in session A there was no commit.  But in 
Tom's pl/sql there's a commit every update.  Shouldn't that throw away the undo 
meaning that session B wouldn't be interested in it?  I tried with a commit 
every update and confirmed what I'd expected, only 4 gets.  What have I missed 
folks?

    Tony
    PS I thinks its irrelevant here, but Ora 9.2.0.7 on Win2k

Other related posts: