Re: What is the purpose of segment level checkpoint before DROP/TRUNCATE of a table?

From: Jonathan Lewis <jonathan_at_jlcomp.demon.co.uk>
Date: Wed, 6 Jul 2011 19:20:53 +0100
Message-ID: <9DE5A32057C447409D413E6BF9F26841_at_Primary>


I've wondered about this one from time to time - but never come up with a good answer. "Just in case" seems to be the most likely.

I think you'll find that segment header, extent map, bitmap blocks and root blocks of indexes are written to disc as local writes (i.e. process writes, not db writer writes) for truncate and drop so that (probably) shouldn't be the reason - unless historically they weren't done as direct writes.

Regards

Jonathan Lewis
http://jonathanlewis.wordpress.com

  • Original Message ----- From: "Tim Gorman" <tim_at_evdbt.com> To: <oracle-l_at_freelists.org> Sent: Wednesday, July 06, 2011 6:41 PM Subject: Re: What is the purpose of segment level checkpoint before DROP/TRUNCATE of a table?

I think it just comes down to the fact that DROP and TRUNCATE of an object removes object metadata blocks (i.e. segment header block for a DROP, extent-map blocks in the event of both commands) that must be flushed down to disk, because those blocks will be reused by another object eventually. Removal of this metadata is relatively unusual, and I imagine that there are failure scenarios where chaos may result if object metadata is not flushed to disk promptly, perhaps?

--

http://www.freelists.org/webpage/oracle-l Received on Wed Jul 06 2011 - 13:20:53 CDT

Original text of this message