Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Extent Allocation question For Oracle Gurus !!

Extent Allocation question For Oracle Gurus !!

From: FaheemRao <faheemrao_at_yahoo.com>
Date: 7 Nov 2001 11:45:30 -0800
Message-ID: <43b58913.0111071145.60e839be@posting.google.com>


Hi All

I Have a Conceptual question about the Extent Allocation in Allocating Extents in Dictionary-Managed Tablespaces

Please Consider then Following Example ,please be patient! since it is a bit lenghty.

datablock size is 1000K

tablespace Parameters
default storage (initial 10K next 20000k minextents 1 maxentents 4096 pctincrease 0)

In tablespace extents are being allocated. so far only one extents is allocated which is 10K

second extent which will be allocated is 20000K (as second extent is equal to original setting of Next parameter)

Now here is the Point is to consider, I am refering to the Oracle Documentation phrase which says this
Oracle8i Concepts
Release 2 (8.1.6)
Part Number A76965-01
Oralce Documentation starts
///////////////////////////

If an exact match is not found, Oracle then searches for a set of contiguous data blocks greater than the amount needed. If Oracle finds a group of contiguous blocks that is at least 5 blocks greater than the size of the extent needed, it splits the group of blocks into separate extents, one of which is the size it needs. If Oracle finds a group of blocks that is larger than the size it needs, but less than 5 blocks larger, it allocates all the contiguous blocks to the new extent.
In the current example, if Oracle does not find a set of exactly 20 contiguous data blocks, Oracle searches for a set of contiguous data blocks greater than 20. If the first set it finds contains 25 or more blocks, it breaks the blocks up and allocates 20 of them to the new extent and leaves the remaining 5 or more blocks as free space. Otherwise, it allocates all of the blocks (between 21 and 24) to the new extent.
//////////////////////////////

Oracle Documentation ends

Now consider the same thing here, Oracle has to allocate the second extent of 20000K which means it will search for 20 Contigeous block( as block size is 1000K),
now if it does not find the exact 20 contigeous block then it search for contigeous block greater than 20 , now there are two possibilities

1 .. Oracle finds contigeous block = Actuall_Needed + Five_MORE then it will allcoate only 20 block and leave five blocks as free space,

2 .. Oracle finds contigeous block = Actuall_Needed+ Less_than_five_But_greater_than_Actuall_Needed then Oracle will allocate all those additional block as well.

Suppose Oracle finds 22 contigeous block then accordoing to case 2 it will allocate all 22 blocks and second extent will be allocated 22000K.
(I know Oracle has done this to reduce fragmentation)

According to Oracle
//////////////////

The size, in bytes, of the next incremental extent to be allocated for a segment. The second extent is equal to the original setting for NEXT. From there forward, NEXT is set to the previous size of NEXT multiplied by (1 + PCTINCREASE/100).
//////////////////

Now when Oracle Allocate the third Extent it will be according to this farmula

NEXT multiplied by (1 + PCTINCREASE/100).

Here is my question!

Now the in second extent the oracle allocate 22000K instead of 20000K(which is Next parameter Value) then which value will be used in above farmula
20000K or 22000K

My Logic is says that Actually Allocated value of second extent should be use in the Farmula.

But I may be wrong so that is why I want to Confirms from "Oracle Gurus".

thanks

Faheem Rao Received on Wed Nov 07 2001 - 13:45:30 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US