|
|
Error: ORA 1555
Text: snapshot too old (rollback segment too small)
-------------------------------------------------------------------------------
Cause: rollback records needed by a reader for consistent read are overwritten by other writers
Action: Use larger rollback segments
*** Important: The notes below are for experienced users -
See [NOTE:22080.1]
Explanation: There are numerous reasons why this can occur but basically for the operation that failed the information it needs to construct a read consistent view of the data is no longer available.
Diagnosis: Is the user FETCHING across a COMMIT ?? If so this breaks the ANSI standards and is not guaranteed by Oracle. Make sure they know this then proceed onto describing the options below which may help. The main way to avoid this is to use larger rollback segments across the system. This gives you a longer period of grace before 'old' rollback infomation gets overwritten. It is typically no use just enlarging a single rollback segment. For long running reports, try to run these when the database is lightly loaded so that the chance of a rollback segment wrapping is reduced (as there are fewer transactions in progress and hence less rollback information being generated). Try using an ORDER BY clause that forces a sort in the query - this should produce the row-source up front so undo is only needed while this ordered row-source is produced. If this is on a SNAPSHOT update check whether the SNAPSHOT is performing a full or fast refresh. A full refresh could be occuring. See <Oerr:ORA:12004> |
|