Pctfree vs Pctused Oracle Khaled Jouini
Transcript of Pctfree vs Pctused Oracle Khaled Jouini
-
7/28/2019 Pctfree vs Pctused Oracle Khaled Jouini
1/9
Forum Archives Forum Archives
PCTFREE Vs PCTUSED
Thread: PCTFREE Vs PCTUSED
Click
DatData
ParaPerf
SQL
Parti
SQLSQL
TechData
Wor12c
A Ta
ComDev
User
R
What's New?
FAQ Calendar Forum Actions Quick Links
Results 1 to 10 of 15
Page 1 of 2 1 2
Last
Thread Tools Display
02-23-2001 09:12 PM
Join Date:Posts:
Oct 2000250
#1
Senior Member
ckwan
Forum
-
7/28/2019 Pctfree vs Pctused Oracle Khaled Jouini
2/9
Dear all,I want to pour some questions on the
above topic questions :
1. I come across a statement saying thatPCTUSED Parameter explanation - After a
data block becomes full, as determined byPCTFREE, Oracle does not consider the
block for the insertion of new rows untilthe percentage of the block being used
falls below the parameter PCTUSED.Before this value is archived, Oracle uses
the free space of the data block only forupdates to rows already contained in the
data block.
Q : What is the reason for this - PCTUSED? Why they want to control that parameter
? Can I set it to 0 ?
Q: Is free list this pre-allocated ? Is thisonly use for PCTFREE ? Where does it
store ?
Your answer is very much appreciated.Thanks.
Reply With Quote
02-24-2001 03:04 AM
Join Date:
Posts:
Feb 2001
7
re: pctused vs pctfree
hope this will provide you your answer...
The PCTFREE parameter specifies the
percentage of
space in each data block that is reservedfor growth
resulting from updates of rows in thatdata block. This
parameter has a default value of 10percent.
For example, the value of the PCTFREEparameter is
specified as 20 in a CREATE TABLEstatement. This
indicates that inserts to the block should
#2
Junior Member
IT_girl200
-
7/28/2019 Pctfree vs Pctused Oracle Khaled Jouini
3/9
free space drops to 20 percent or less.The free space
thereafter can only be used for updates.
The PCTUSED parameter represents the
minimum
percentage of the used space that the
Oracle server tries
to maintain for each data block of the
table. This
parameter has a default value of 40percent.
When a data block is filled to the limit
determined by the
value of the PCTFREE parameter, Oracleconsiders the
block unavailable for the insertion of new
rows. The block
is unavailable for the insertion of newrows until the
percentage filled by the data of that block
falls below the
value of the PCTUSED parameter.
Until the percentage of the block fallsbelow the value of
the PCTUSED parameter, Oracle uses the
free space of
the data block only for updating the rows
contained in the
data block.
For example, if PCTUSED is defined as 40
percent, the
block is reused for inserts as soon asutilization drops to
less than 40 percent. Inserts continue
until utilization
reaches 80 percent and the cycle repeats.
Reply With Quote
-
7/28/2019 Pctfree vs Pctused Oracle Khaled Jouini
4/9
02-24-2001 03:31 AM
Join Date:
Location:
Posts:
Feb 2001
Bombay,India
530
Pctused and Pctfree are block storage
parameters.Pctused is used to find out how much
percentage of the block will be used tostore rows.Pctfree is used to find out how
much percentage of the block will be usedto store rows resulting from further
updates to the rows in the same
datablock.
Eg. If u keep pctused to 40% and pctfree
20.so u can insert rows till 40 %.if thelimit exceeds 40%,still also u can insert
rows in the datablock till the limit reaches80% (100%-20%) as u have kept pctfree
to 20%.Now if one goes on deleting therows,the block is not said to be free unless
and until pctused falls below 40%.As soonas pctused falls below 40% from deleting
the rows, that block can be used to insertthe rows.In this way the cycle
continous.So it is recommended that unever sum up
pctused+pctfree=100.Always have some
gap between them this helps in reducingur Oracle server for allocation anddisallocation of freelists.
If any further doubts write to
Advisor
rohitsn
Reply With Quote
02-25-2001 12:48 PM
Join Date:
Location:
Posts:
May 2000
ATLANTA, GA, USA
3,136
This is an interesting question. I wouldlike to share my experience.
In the last 3 months, I had interviewed 15Oracle DBAs and asked the same
question. Only one person answeredcorrectly.
Both the parameters are applicable and
used for each data block in the Database.I hope an example will give you the right
answer.
#4
Moderator
tamilselvan
-
7/28/2019 Pctfree vs Pctused Oracle Khaled Jouini
5/9
Consider 8K block size. The total bytes 8 x
1024 = 8196 bytesEach block requires approximately 117
bytes for the header. Please note that the
header size varies depending upon theblock size.The total available bytes for data = ( 8196
117) = 8079 bytes.
A table is created with PCTFREE 20
PCTUSED 50 .
PCTRFREE in bytes = 1615
PCTUSED in bytes = 4039
Now the data available for insert andupdate = (8079 (20 * 8079)/100 ) =
6463 Bytes.
Now user can insert new rows into thisblock as long as the old rows total bytes
+ new rows total byte is less than orequal to 6463 bytes. If the new rows total
byte cannot be put into this block, thenOracle will get the next block from the
free list, and inserts into it.
When a row is updated and the rows datais expanded, then PCTFREE come into
play. The updated rows data is placedinto PCTFREEs area, provided the updated
rows new data can be fit into PCTFREEarea. If it is not fit into that area, another
new block will be obtained from theFreelist, and the row will be migrated. But
the original row info (pointer) is kept inthe old block. For subsequent access to
this row involves 2 read I/O. That is whyrow migration should be avoided because
of excessive I/Os.
ROW DELETION:
The PCTUSED parameter value (in thisexample 50 %) is the threshold limit for
the old block to be added in the FREELIST.To understand better, let us assume that a
block is of full data. Now the user startsdeleting rows from the block. When a row
is deleted, Oracle does not put the blockinto the FREELIST because it requires
many recursive calls to update theFREELIST. The PCTUSED % (50)
determines when the block should beadded into FREELIST. When the total
bytes in the block is less than or equal to4039 bytes, then the block will be added
into FREELIST.
If a table has high inserts and highdeletion, then ou should decrease the
-
7/28/2019 Pctfree vs Pctused Oracle Khaled Jouini
6/9
PCTUSED value in order to minimize the
frequent update of FREELIST.
The best confidence booster is knowledge.
Good Luck, guys.
Reply With Quote
02-26-2001 12:03 PM
Join Date:
Location:
Posts:
May 2000
ATLANTA, GA, USA
3,136
Correction in earlier post.
The overhead for each block is 107 bytes,not 117 bytes.
Tamilselvan
#5
Moderator
tamilselvan
Reply With Quote
02-26-2001 12:27 PM
Join Date:
Location:
Posts:
Oct 2000
Saskatoon, SK,
Canada3,925
#6
Senior Advisor
sambavan
-
7/28/2019 Pctfree vs Pctused Oracle Khaled Jouini
7/9
That was one damn good explanation. Buton reading this thread, I'm getting more
questions than that of answers.
1. How do one get to check the over headfor different block_sizes.
2. What happens when one sets the
PCTFREE to 80%
Sorry for such a lame question, but was
curious to know the answer, atleast to thefirst one.
Thanx,Sam
Thanx
Sam
Life is a journey, not a destination!
Reply With Quote
02-26-2001 12:41 PM
Join Date:
Location:
Posts:
May 2000
ATLANTA, GA, USA
3,136
Oracle says the overhead for each block
varies from 84 bytes to 107 bytes.I do not know how to cross check over
head bytes for various block sizes.
Does anybody know the answer?
#7
Moderator
tamilselvan
Reply With Quote
02-26-2001 12:44 PM
Join Date:
Location:Posts:
Jun 2000
Madrid, Spain7,448
if pctfree is high then basically we are
wasting hard drive space since only 10%of block is used for inserts, of course if
you consider that you will update the rowsso often and fill the 80% up then its up
#8
Pando & Company
pando
-
7/28/2019 Pctfree vs Pctused Oracle Khaled Jouini
8/9
to you but I think its pretty rare
I say 10% but it can be less sincepctfree+pctused cant be more than 100
and if we set pctused 20 and pctfree 80
most probably we will face perfomanceissues because the block has to be put onfreelist and taken off free list all the time.
As for block overhead I think there is a
formula in Oracle DBA Handbook
Reply With Quote
02-26-2001 12:47 PM
Join Date:
Posts:
Jan 2001
642
To add on to the question pool,
I understand that the pctused is used byoracle to put the block into the free list for
future inserts.
1) Will any new blocks(extends) added willdirectly put into the freelist ?
2) I know that I have a table, in which I
rarely have any updates and deletes but
only insertions, then can I set theparameters for
PCT FREE = 100and PCT USED=0?
Badrinath
#9
Advisor
badrinathn
Reply With Quote
02-26-2001 01:11 PM
Join Date:
Posts:
Nov 2000
212
badrinathn:on site [url]http://www.ixora.com.au
/q+a/datablock.htm[/url] is gooddiscussion of that issue. from my
understanding, new blocks goes to socalled master free list.
pctused=0 and pctfree=100 would make
sense for insert only table.
#10
Member
LND
Reply With Quote
-
7/28/2019 Pctfree vs Pctused Oracle Khaled Jouini
9/9
Previous Thread | Next Thread
Acceptable U
Copyright 2013 QuinStreet I
Terms of Service | Licensing &
About the IT Business Ed
All times are GMT -4. The
Page 1 of 2 1 2 Last
Quick Navigation Forum Archives Top