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@(protected) ; 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@(protected) [mailto:oracle-l-bounce@(protected) ]On Behalf Of t_adolph@(protected) 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
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML><HEAD> <META http-equiv=Content-Type content="text/html; charset=iso-8859-1"> <META content="MSHTML 6.00.2800.1522" name=GENERATOR> <STYLE></STYLE> </HEAD> <BODY bgColor=#ffffff> <DIV><FONT face=Arial size=2>So far my understanding's matched all feedback, just can't match that with the description/example in the book.</FONT></DIV> <BLOCKQUOTE dir=ltr style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px"> <DIV style="FONT: 10pt arial">-- -- Original Message -- -- </DIV> <DIV style="BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: black"><B>From:</B> <A title=mwf@(protected) href="mailto:mwf@(protected)">Mark W. Farnham</A> </DIV> <DIV style="FONT: 10pt arial"><B>To:</B> <A title=t_adolph@(protected) href="mailto:t_adolph@(protected)">t_adolph@(protected)</A> ; <A title=oracle-l@(protected) href="mailto:oracle-l@(protected)">ORACLE-L</A > </DIV> <DIV style="FONT: 10pt arial"><B>Sent:</B> Wednesday, November 02, 2005 12:16 PM</DIV> <DIV style="FONT: 10pt arial"><B>Subject:</B> RE: Effective Oracle by Design - p259 - 260 - confused, is there a mistake?</DIV> <DIV><BR></DIV> <DIV><FONT face=Arial color=#0000ff size=2><SPAN class=913060111-02112005>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.</SPAN></FONT></DIV> <STYLE> <!-- A.psl { TEXT-DECORATION:none; COLOR: #4e81c4 } A:hover { TEXT-DECORATION: underline } A.psl:hover { COLOR: #999999 } noro { FONT-SIZE: 8pt; COLOR: #4e81c4; FONT-FAMILY: Verdana,Arial,fixed } tiny { FONT-SIZE: 1pt } logotext { TEXT-DECORATION: none; FONT-SIZE: 10pt; COLOR: #ffffff; FONT-FAMILY: Verdana ,Arial,fixed } A.brand { COLOR: #777777; FONT-SIZE: 7pt; FONT-FAMILY: Verdana,Arial,fixed; TEXT -DECORATION: none } --> </STYLE>
<BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"> <DIV class=OutlookMessageHeader dir=ltr align=left><FONT face=Tahoma size=2>-- --Original Message-- --<BR><B>From:</B> oracle-l-bounce@(protected) [mailto:oracle-l-bounce@(protected)]<B>On Behalf Of </B>t_adolph@(protected)<BR><B>Sent:</B> Wednesday, November 02, 2005 5:06 AM<BR><B>To:</B> ORACLE-L<BR><B>Subject:</B> Effective Oracle by Design - p259 - 260 - confused, is there a mistake?<BR><BR></FONT></DIV> <DIV><FONT face=Arial size=2>Hi All,</FONT></DIV> <DIV><FONT face=Arial size=2></FONT> </DIV> <DIV><FONT face=Arial size=2>A question for those of you who have read Effective Oracle by Design by Thomas Kyte:</FONT></DIV> <DIV><FONT face=Arial size=2></FONT> </DIV> <DIV><FONT face=Arial size=2>Chpt 5, page 259 - 260: Tom is explaining that undo is read for read for read consistency....</FONT></DIV> <DIV><FONT face=Arial size=2></FONT> </DIV> <DIV><FONT face=Arial size=2><SPAN class=913060111-02112005><snip></SPAN></FONT></DIV> <DIV><FONT face=Arial size=2>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?</FONT></DIV> <DIV><FONT face=Arial size=2></FONT> </DIV> <DIV><FONT face=Arial size=2>Tony</FONT></DIV> <DIV><FONT face=Arial size=2>PS I thinks its irrelevant here, but Ora 9.2.0.7 on Win2k</FONT></DIV> <DIV><FONT face=Arial size=2></FONT> </DIV></BLOCKQUOTE></BLOCKQUOTE></BODY></HTML>