Re: Oracle's automatic extent allocation (next extent) size algorithm - anyone?
Date: Fri, 9 Apr 2021 18:18:54 +0000
Message-ID: <BN6PR01MB25477BBCDD31223FE484E645CE739_at_BN6PR01MB2547.prod.exchangelabs.com>
The following may be out of date, but I found the following in my notes
Mark Powell
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
--The following appears to cover most (but not guaranteed to be all) cases
--
--
Database Administration
(313) 592-5148
From: oracle-l-bounce_at_freelists.org <oracle-l-bounce_at_freelists.org> on behalf of Hemant K Chitale <hemantkchitale_at_gmail.com>
Sent: Friday, April 2, 2021 10:04 AM
To: jlewisoracle_at_gmail.com <jlewisoracle_at_gmail.com>
Cc: Chris Taylor <christopherdtaylor1994_at_gmail.com>; oracle-l_at_freelists.org <oracle-l_at_freelists.org>
Subject: Re: Oracle's automatic extent allocation (next extent) size algorithm - anyone?
On Wed, Mar 31, 2021 at 12:30 AM Jonathan Lewis <jlewisoracle_at_gmail.com<mailto: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<mailto: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 09 2021 - 20:18:54 CEST