When a short select causes a ora-1555, it usually means that that select is part of a larger transaction which began earlier than data is available in the undo. One simple method would be to issue a commit prior to doing the select, if that is possible. If it is not possible, you may need to increase the undo retention. On Tue, Jul 14, 2009 at 10:35 AM, Nancy Iles <nancy_iles@xxxxxxxxxxx> wrote: > > We have sporadic ora-1555 on an exceptionally simple statement that occurs > frequently in the application. How can you analyze why this tiny, simple > statement is causing an ORA-1555? The statement is: > > SELECT RESV_NAME_ID , RESORT FROM RESERVATION_NAME WHERE CONFIRMATION_NO > = :1 > > I believe that this causes a user session to hang. Our third party vendor > says that it is because a user terminates their session improperly and that > it is not an issue. > > Any suggestions on how to analyze the cause and the system impact? > > TIA, > > Nancy Iles > Omni Hotels > ________________________________ > > Date: Tue, 14 Jul 2009 10:24:00 -0300 > > Subject: Undo Usage and Read consistency - ORA-1555 > > From: cicciuxdba@xxxxxxxxx > > To: oracle-l@xxxxxxxxxxxxx > > > > Dear DBAs, > > > > We got into a discussion about how read consistency is implemented in > Oracle and was wondering what you know of this. > > > > The two sides are the following: > > 1) Undo is used for any and all selects, so if you do a full scan on a > large table it is bound to give ORA-1555 even if there is no transaction > modifying the table > > > > 2) Undo is only used when a transaction modifies data (DML) and ONLY then > ORA-1555 is possible, since it happens when the consistent version of the > block stored in the UNDO by the transaction ages out. > > > > Documentation is unclear to this respect: > > > > From the concepts guide: > > > > To manage the multiversion consistency model, Oracle must create a > > read-consistent set of data when a table is queried (read) and > > simultaneously updated (written). When an update occurs, the original > > data values changed by the update are recorded in the database undo > > records. As long as this update remains part of an uncommitted > > transaction, any user that later queries the modified data views the > > original data values. Oracle uses current information in the system > > global area and information in the undo records to construct a > read-consistent view of a table's data for a query. > > > > Does this mean that every time I perform a select I get a copy of the > data into de undo? > > > > > > Alan Bort > > Oracle Certified Professional > _________________________________________________________________ > Hotmail® has ever-growing storage! Don’t worry about storage limits. > > http://windowslive.com/Tutorial/Hotmail/Storage?ocid=TXT_TAGLM_WL_HM_Tutorial_Storage_062009-- > //www.freelists.org/webpage/oracle-l > > > -- Andrew W. Kerber 'If at first you dont succeed, dont take up skydiving.'