Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> Re: TRUNCATE TABLE acquire rollback segment?
The TRUNCATE command has to update the
segment header block, and several data
dictionary tables in a self-consistent way
through a recursive transaction
e.g.
update tab$ update seg$ update obj$
Possibly insert/update/delete on fet$ and uet$, Possibly update tsq$.
and no doubt a few others that I've forgotten about at the moment, such as items relating to snapshots and snapshot logs.
Rollback is used to protect the integrity of this recursive transaction.
-- Jonathan Lewis Yet another Oracle-related web site: http://www.jlcomp.demon.co.uk Practical Oracle 8i: Building Efficient Databases Publishers: Addison-Wesley Reviews at: http://www.jlcomp.demon.co.uk/book_rev.html Tom wrote in message ...Received on Mon Apr 30 2001 - 04:41:30 CDT
>I always thinking TRUNCATE TABLE is fast because no rollback is generated
>for the operation. Suddenly, I found foolowing in COUCHMAN's DBA
>certifaction book:
>
>"Despite your inability to rollback a table truncation, Oracle does acquire
>a rollback segment for the job. Why? Because if you terminate the
truncate
>table command, or some failure occurs, the rollback segments stores the
>changes made for the duration of the truncate operation to enable crash
>recovery."
>
>I do not quite understand what information is put in the rollback for the
>TRUNCATE operation. Your help is appreciated.
>
>Tom
>
>
>