← All posts
Oracle DBAUndoTroubleshooting

ORA-01555: Snapshot too old — a practical checklist

Jun 14, 2026 · 7 min

When a long-running query fails with ORA-01555, the reflex is to raise UNDO_RETENTION. That is almost never the right first move.

What actually happened Oracle needed a consistent read for a block whose undo had already been overwritten. Three things drive that: undo pressure, commit rate and query duration.

The checklist 1. Confirm the query duration in v$sql_monitor — is it a runaway plan? 2. Check v$undostat for tuned_undoretention over the query window. 3. Look for LOB corruption before blaming undo: ORA-22924 is often misreported as -01555. 4. Only after 1–3, consider undo tablespace sizing or guaranteed retention.

Prevention beats tuning The cheapest fix is almost always making the query faster. A 40-minute report has 40 minutes to hit this error; a 40-second report almost never does.

Keep reading