Re: Oracle's automatic extent allocation (next extent) size algorithm - anyone?

From: Hemant K Chitale <hemantkchitale_at_gmail.com>
Date: Fri, 2 Apr 2021 22:11:25 +0800
Message-ID: <CAMNBsZv0q3+3mJ0kc_CiMmGWr5qJLaM8bc8LMYNNd8s+gVNf=w_at_mail.gmail.com>



One caveat is that when a file size limit is being hit , it is possible that Oracle may allocate odd-sized extents

Also, Jonathan Lewis has shown an example of extent-trimming when using PX https://jonathanlewis.wordpress.com/2007/05/29/autoallocate-and-px/

Hemant K Chitale

On Fri, Apr 2, 2021 at 10:04 PM Hemant K Chitale <hemantkchitale_at_gmail.com> wrote:

>
> I have found Maximum Table Extent Size When Using AUTOALLOCATE (Doc ID
> 1302686.1)
>
> However, it doesn't explain when and how the RDBMS switches from 64K to
> 1M and then 8M and 64M
>
> Hemant K Chitale
>
>
>
>
> On Wed, Mar 31, 2021 at 12:30 AM Jonathan Lewis <jlewisoracle_at_gmail.com>
> wrote:
>
>>
>> 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-l
Received on Fri Apr 02 2021 - 16:11:25 CEST

Original text of this message