RE: Table growth - disk sizing

  • From: "Christian Antognini" <Christian.Antognini@xxxxxxxxxxxx>
  • To: <tomday2@xxxxxxxxx>
  • Date: Thu, 25 Aug 2005 21:51:05 +0200

>-----Original Message-----
>From: oracle-l-bounce@xxxxxxxxxxxxx [mailto:oracle-l-bounce@xxxxxxxxxxxxx] On 
>Behalf Of Thomas Day
>Sent: 25 August 2005 19:03
>To: Oracle-L
>Subject: Re: Table growth - disk sizing
>
>Would you care to explain?

Tom

In a "regular" index the data is stored in ascending order (e.g. ..., 11, 12, 
13, 14, 15, 16, ...). If you create an index on a column where the data is 
inserted in "progression" (e.g. timestamp of the transaction or value generated 
by a sequence), it's very likely, for concurrent transactions, to modify the 
right-most leaf block. Of course this situation will result in waits.  

Now, if you store the data in descending order (e.g. ..., 16, 15, 14, 13, 12, 
11, ...) you will simply move the contention to the left-most leaf block, i.e. 
it's not reduced.

A possible solution for such a contention problem, it's to store the data in 
reserve order (e.g. ..., 11, 21, 31, 41, 51, 61, ...). With this method the 
transaction are well spread over "all" leaf blocks. Of course they are 
drawbacks as well. One of the most important is the poor support of range scans 
(the data is in the wrong order...).

HTH
Chris


New Features Oracle Database 10g Release 2 seminars @ www.trivadis.com
Italiano: Lugano (24-Nov)
Français: Genève (17-Nov)
Deutsch: Zürich (11-Oct), Hamburg (13-Oct), München (20-Oct), Basel (25-Oct), 
         Frankfurt (27-Oct), Bern (8-Nov), Düsseldorf (23-Nov), Stuttgart 
(13-Dec)
--
//www.freelists.org/webpage/oracle-l

Other related posts: