471 views
in Undo Management by ACE (20,920 points)

2 Answers

by ACE (20,920 points)

A company's quarter-end processing includes several long-running transactions. At the same time, several customer service representatives are updating information contained in the same underlying tables.

by ACE (20,920 points)

For example, let's say while a quarterly batch transaction is updating hundreds of records across dozens of tables, including the accounts receivable table, a customer service rep has begun updating a customer's balance due. If the batch transaction (which began before the customer service rep began his session) is trying to update the same record that has just been modified in the context of a different transaction (the customer service rep's transaction), then Oracle Database turns to the undo segment to recall the state of that record at the time the batch transaction began, to ensure read consistency for that transaction. If that section of the undo data has already been overwritten, the "ORA-1555: snapshot too old" error occurs, and the transaction cannot complete.

...