Re: "snapshot too old" and undo_retention

Sure, if disk space is not an issue for the undo tablespace, you can increase 
the
undo_retention to whatever you want up to the max 2^32 - 1 seconds, or over 136 
years :)

Yes, that is one of the choices to attempt to minimize ORA-1555 error. 

You can also find out the time for your longest running query: 

 select max(maxquerylen) seconds from v$undostat;

Setting undo_retention to more than this value should suffice. 

There are no drawbacks in setting undo_retention to a large value. If you have 
ample undo
space, Oracle will try not to overwrite committed data in undo segments, but 
again, if it
needs the undo space to keep other transactions alive it will simply ignore the
undo_retention setting and use the space.  

Actually, you should look in alert log to get the SQL that got ORA-1555 error, 
and see if
it can be tuned to not run so long. The log will also show how long the query 
ran before
getting ORA-1555 error. 

HTH,

- Kirti 


--- Roger Xu <roger_xu@xxxxxxxxxxx> wrote:

> Hi List,
> 
> Background: Oracle 9.2.0 w/ Auto Undo Management
> 
> We have a huge table and it takes more than 24 hours to collect its 
> statistics.
> 
> But the undo_retention is set to 864000 i.e. 24 hours. As a result we see the 
> following
> a lot.
> 
> "ORA-01555: snapshot too old: rollback segment number 11 with name 
> "_SYSSMU11$" too
> small"
> 
> Since we have lots of space in the undo tablespace, I am thinking of 
> increasing
> undo_retention to 36 hours
> 
> via "ALTER SYSTEM SET UNDO_RETENTION = 129600;"
> 
> 
> Is this my only choice?
> 
> What are the drawbacks to have a large undo_retention value assuming we never 
> run out
> undo tablespace?
> 
>  
> 
> Thanks,
> 
> Roger Xu 
> 
> 


                
__________________________________ 
Yahoo! Mail - PC Magazine Editors' Choice 2005 
http://mail.yahoo.com
--
http://www.freelists.org/webpage/oracle-l

Other related posts: