I added my comments on Tanel's blog. From: oracle-l-bounce@xxxxxxxxxxxxx [mailto:oracle-l-bounce@xxxxxxxxxxxxx] On Behalf Of Tanel Poder Sent: Wednesday, July 06, 2011 4:59 AM To: yparesh@xxxxxxxxx; Oracle-L Freelists Subject: Re: What is the purpose of segment level checkpoint before DROP/TRUNCATE of a table? I started writing a reply here, but thought others would benefit from it as well, so turned the answer into a blog entry: http://blog.tanelpoder.com/2011/07/06/what-is-the-purpose-of-segment-level-c heckpoint-before-droptruncate-of-a-table/ This is just my reasoning, there may be other, more fundmental reasons behind it. -- Tanel Poder http://blog.tanelpoder.com On Wed, Jul 6, 2011 at 4:30 AM, Paresh Yadav <yparesh@xxxxxxxxx> wrote: Hi, What is the purpose of segment level checkpoint before DROP/TRUNCATE of a table? I have tried to find this since quite some time, Only thing I have found is that it is required for recoverability, specifically point in time recovery amongst many other things. I have read about it on so many sites (as far as I remember Jonathan Lewis, Tom Kyte etc.). I recently saw an awesome article on check points by Harald Van Breederode titled "What's the Point of Oracle Checkpoints?". How does it help in recoverability? I thought about point-in-time recovery. All the information to recover dirty buffers for committed transactions should be in the redo stream (redo log and/or archived log) so why do a checkpoint at the object level before truncat//drop? Is it to shorten MTTR etc.? An explanation will be very much appreciated. Any pointers to other resources that I can read in this matter? -- Thanks Paresh 416-688-1003