Re: Oracle's automatic extent allocation (next extent) size algorithm - anyone?
Date: Tue, 13 Apr 2021 18:51:04 +0000
Message-ID: <DM5PR01MB2556F2122D725927A01866C9CE4F9_at_DM5PR01MB2556.prod.exchangelabs.com>
Chris, I believe the exact allocation logic for auto-allocate is not documented because it is subject to change with any release, and I am pretty sure that at one time it changed to pick up odd free extents. That is, if the extent size was 64K and there was 55K at the end of the file it was not used on early releases, but later releases would go ahead and use the extent. If you check the actual allocation size for all objects in an auto-allocate tablespace some of them may vary from the expected size but this will also depend on file allocations size/extend sizes. And again this could have changed with the newer releases.
Mark Powell
Thanks Mark. I knew we had discussed this on the list in the past . I'm sort of surprised Oracle hasn't documented the details somewhere for general rule of thumb purposes.
Chris
On Fri, Apr 9, 2021 at 2:19 PM Powell, Mark <mark.powell2_at_dxc.com<mailto:mark.powell2_at_dxc.com>> wrote:
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
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
Regards
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
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)
Database Administration
(313) 592-5148
From: Chris Taylor <christopherdtaylor1994_at_gmail.com>
Sent: Friday, April 9, 2021 6:36 PM
To: Powell, Mark <mark.powell2_at_dxc.com>
Cc: oracle-l_at_freelists.org <oracle-l_at_freelists.org>
Subject: Re: Oracle's automatic extent allocation (next extent) size algorithm - anyone?
--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<mailto:oracle-l-bounce_at_freelists.org> <oracle-l-bounce_at_freelists.org<mailto:oracle-l-bounce_at_freelists.org>> on behalf of Hemant K Chitale <hemantkchitale_at_gmail.com<mailto:hemantkchitale_at_gmail.com>>
Sent: Friday, April 2, 2021 10:04 AM
To: jlewisoracle_at_gmail.com<mailto:jlewisoracle_at_gmail.com> <jlewisoracle_at_gmail.com<mailto:jlewisoracle_at_gmail.com>>
Cc: Chris Taylor <christopherdtaylor1994_at_gmail.com<mailto:christopherdtaylor1994_at_gmail.com>>; oracle-l_at_freelists.org<mailto:oracle-l_at_freelists.org> <oracle-l_at_freelists.org<mailto:oracle-l_at_freelists.org>>
Subject: Re: Oracle's automatic extent allocation (next extent) size algorithm - anyone?
-- 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.
Jonathan Lewis
Linux x86-64
Chris
--
http://www.freelists.org/webpage/oracle-l
Received on Tue Apr 13 2021 - 20:51:04 CEST