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: truncate a table with many extents

RE: truncate a table with many extents

From: Khedr, Waleed <Waleed.Khedr_at_FMR.COM>
Date: Thu, 6 May 2004 16:48:54 -0400
Message-ID: <42BBD772AC30EA428B057864E203C999114055@MSGBOSCLF2WIN.DMN1.FMR.COM>


Can you think of any reason to have tsq$ handled differently during a = truncate?

Regards,

Waleed

-----Original Message-----

From: Jonathan Lewis [mailto:jonathan_at_jlcomp.demon.co.uk] Sent: Thursday, May 06, 2004 2:29 PM
To: oracle-l_at_freelists.org
Subject: Re: truncate a table with many extents

I think this is one that probably requires testing for every platform and version of Oracle.

I've just run a quick test on 9.2.0.4 with 169 extents in an LMT Uniform sized.

The most significant difference is that the TRUNCATE updated tsq$ once per extent removed, DROP updated tsq$ once at the end. On the other hand, the DROP command triggered various other (mostly small) actions, including a call to a procedure called aw_drop_proc.

The most significant difference, though, was the handling of tsq$, and it made the truncate much more expensive in undo and redo.

Regards

Jonathan Lewis

http://www.jlcomp.demon.co.uk

http://www.jlcomp.demon.co.uk/faq/ind_faq.html The Co-operative Oracle Users' FAQ

http://www.jlcomp.demon.co.uk/seminar.html Optimising Oracle Seminar - schedule updated May 1st

I performed some testing on this few weeks ago. I couldn't measure the undo blocks due to implicit commits from DDLs. Redo size and redo entries were used instead. Oracle 8.1.7.4 64 bit on Solaris 8.

  1. Dictionary managed: Table with 1001 extents 20000 rows 128k extent size Truncate : redo size :756k redo entries : 3031 Drop : redo size :569k redo entries : 2183
  2. Locally managed : Same code as above, but this generated 1251 extents. 128k uniform sized LMT Truncate : redo size 1.46MB redo entries : 10,020 Drop : redo size 367K redo entries : 3,804

We decided to use LMTs with drop statements (of course, this table is accessed through a procedure so no grants issue). Surprisingly, # of recursive calls dropped from 15,110 to 307 between truncate and drop statements in case of LMT.

It would be nice to see what happens with more # of extents.. Will try that soon.

HTH
Thanks
Riyaj "Re-yas" Shamsudeen
Certified Oracle DBA



Please see the official ORACLE-L FAQ: http://www.orafaq.com

To unsubscribe send email to: oracle-l-request_at_freelists.org put 'unsubscribe' in the subject line.
--

Archives are at http://www.freelists.org/archives/oracle-l/
FAQ is at http://www.freelists.org/help/fom-serve/cache/1.html

-----------------------------------------------------------------
----------------------------------------------------------------
Please see the official ORACLE-L FAQ: http://www.orafaq.com
----------------------------------------------------------------
To unsubscribe send email to: oracle-l-request_at_freelists.org
put 'unsubscribe' in the subject line.
--

Archives are at http://www.freelists.org/archives/oracle-l/ FAQ is at http://www.freelists.org/help/fom-serve/cache/1.html
Received on Thu May 06 2004 - 15:47:41 CDT

Original text of this message

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