Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Mailing Lists -> Oracle-L -> Re: extent deallocation question

Re: extent deallocation question

From: <Riyaj_Shamsudeen_at_i2.com>
Date: Sun, 28 Oct 2001 17:20:36 -0800
Message-ID: <F001.003B6938.20011028172018@fatcity.com>


Hi Jeremiah
        When you truncate or drop an object, all the extents/buffers associated with that object need to be flushed to the disk, meaning an object checkpoint has to take place. DBW recieves an object checkpoint call, from the client process. Client process then waits for the IPC message from the DBW process for the object checkpoint call completion. The wait event you see is that the client is waiting for this IPC message from DBW. Once DBW completes flushing all the buffers associated with the objects, DBW will send back an IPC message to the client.
        Interestingly, there is are two lists( main and auxcillary lists) in 8i buffer cache just for this object checkpoint call, which is supposed to improve the performance of these object checkpoint calls. If you have very large buffer cache, DBW can take long time to flush these buffers.
        If you truncate a table, then all the indexes associated with these tables (an their buffers) need to be checkpointed. Further, only fraction of writes are dedicated for these checkpoints and that could be another reason for longer waits.
       

Thanks
Riyaj "Re-yas" Shamsudeen
Certified Oracle DBA
i2 technologies   www.i2.com

Jeremiah Wilton <jwilton_at_speakeasy.net>
Sent by: root_at_fatcity.com
10/28/01 03:35 PM
Please respond to ORACLE-L

       
        To:        Multiple recipients of list ORACLE-L <ORACLE-L_at_fatcity.com>
        cc:        
        Subject:        extent deallocation question

Using dictionary-managed tablespaces, it can sometimes take a very long time to drop or truncate a segment with many tens of thousands of extents, because Oracle takes a long time to update UET$ and FET$.

This can be a serious problem for some people because the session performing the DDL holds the ST enqueue for the duration of the extent deallocation.

During these long extent deallocations, I observe the session performing DDL waiting on IPC with the database writer.  Can anyone tell me why these long extent allocations spend the vast majority of their time waiting on DBW0?  Does every block in UET$ and FET$ have to get written out before the deallocate can proceed?  If so, why?

Using a normal application, I can delete and insert tens of thousands of rows in just a few seconds.  What takes Oracle so long with UET$ and FET$?

BTW, this is not a problem that I personally have - it is a purely academic question.

--
Jeremiah Wilton
http://www.speakeasy.net/~jwilton

-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.com
-- 
Author: Jeremiah Wilton
  INET: jwilton_at_speakeasy.net

Fat City Network Services    -- (858) 538-5051  FAX: (858) 538-5051
San Diego, California        -- Public Internet access / Mailing Lists
--------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: ListGuru_at_fatcity.com (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).
Received on Sun Oct 28 2001 - 19:20:36 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US