Hey, I've just come across a useful technology in Oracle 10g, called Flashback.
Faced with the need to performance test an 800GB database, I was wondering how on earth we could run repeatable tests without restoring the entire database every time (a verrry long process).
"Flashback database" allows you to, effectively, roll back all changes in the database to a point in time, without needing to restore from backup.
For a multi-threaded batch process which ran for 127 mins, hammering the database, the flashback process took 34 mins to undo everything. The same process, without flashback, took 115 mins to run. So there's some overhead, as expected, but not too much, considering the huge gains in available test time.