Re: Oracle's automatic extent allocation (next extent) size algorithm - anyone?
Date: Tue, 30 Mar 2021 17:30:06 +0100
Message-ID: <CAGtsp8mrTpQ4HZd7QmG1jiCeDhNjSxhpQArcVzwoyvRjY8rNrg_at_mail.gmail.com>
I don't think a complete algorithm has ever been published because there are so many possible variations depending on whether it's a single-file or multi-file tablespace, depending on what's been created and dropped previously and what holes are arround, whether or not the insert is parallel or not, and whether you're creating a partitioned object. There may be other complications.
In the simplest case in the 8KB block size it seems to be: 16 extents at 64KB (8 blocks) - to get to 1MB extent 63 extents at 1MB (128 blocks) - to get to a total of 64MB extent 120 extents at 8MB (1024 blocks) - to get to 1GB -- after that I think it may be 64MB extents all the way, but I have a vague memory of someone testing to a very large segment size and finding 256MB as the next size.
Regards
Jonathan Lewis
On Tue, 30 Mar 2021 at 16:47, Chris Taylor <christopherdtaylor1994_at_gmail.com> wrote:
> Env: 12.1.0.2
> Linux x86-64
>
> For Oracle segments in Locally Managed Tablespaces with *AUTOMATIC* extent
> allocation (instead of UNIFORM extent allocation) , does anyone have the
> algorithm that Oracle uses to determine the next extent size that is based
> on the size of the segment?
>
> I used to have it where it went something like:
>
> IF segment > xG , then next extent = xGB
> IF Segment > xMB then next extent = xMB
>
> I'm trying to find it but can't quickly locate it (because I'm not sure
> what keywords to search for)
>
> Chris
>
-- http://www.freelists.org/webpage/oracle-lReceived on Tue Mar 30 2021 - 18:30:06 CEST