Links
Home
Oracle DBA Forum
Frequent Oracle Errors
TNS:could not resolve the connect identifier specified
Backtrace message unwound by exceptions
invalid identifier
PL/SQL compilation error
internal error
missing expression
table or view does not exist
end-of-file on communication channel
TNS:listener unknown in connect descriptor
insufficient privileges
PL/SQL: numeric or value error string
TNS:protocol adapter error
ORACLE not available
target host or object does not exist
invalid number
unable to allocate string bytes of shared memory
resource busy and acquire with NOWAIT specified
error occurred at recursive SQL level string
ORACLE initialization or shutdown in progress
archiver error. Connect internal only, until freed
snapshot too old
unable to extend temp segment by string in tablespace
Credential retrieval failed
missing or invalid option
invalid username/password; logon denied
unable to create INITIAL extent for segment
out of process memory when trying to allocate string bytes
shared memory realm does not exist
cannot insert NULL
TNS:unable to connect to destination
remote database not found'>ora-02019
exception encountered: core dump
inconsistent datatypes
no data found
TNS:operation timed out
PL/SQL: could not find program
existing state of packages has been discarded
maximum number of processes exceeded
error signaled in parallel query server
ORACLE instance terminated. Disconnection forced
TNS:packet writer failure
see ORA-12699
missing right parenthesis
name is already used by an existing object
cannot identify/lock data file
invalid file operation
quoted string not properly terminated
Effective Oracle by Design - p259 - 260 - confused, is there a mistake?

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

2005-11-02       - By Mark W. Farnham

Reply:     1     2     3     4  

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 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&nbsp;"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>&nbsp;</DIV>
 <DIV><FONT face=Arial size=2>A question for&nbsp;those of you who have read
 Effective Oracle by Design by Thomas Kyte:</FONT></DIV>
 <DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
 <DIV><FONT face=Arial size=2>Chpt 5, page 259 - 260: Tom is explaining that
 undo is read&nbsp;for read for read consistency....</FONT></DIV>
 <DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
 <DIV><FONT face=Arial size=2><SPAN
 class=913060111-02112005>&lt;snip&gt;</SPAN></FONT></DIV>
 <DIV><FONT face=Arial size=2>Now this makes sense to me as in session A there
 was no commit.&nbsp; But in Tom's pl/sql there's a commit every update.&nbsp;
 Shouldn't that throw away the undo meaning that session B wouldn't be
 interested in it?&nbsp; I tried with a commit every update and confirmed what
 I'd expected, only 4 gets.&nbsp; What have I missed folks?</FONT></DIV>
 <DIV><FONT face=Arial size=2></FONT>&nbsp;</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>&nbsp;</DIV></BLOCKQUOTE></BODY></HTML>