Pctfree vs Pctused Oracle Khaled Jouini

download Pctfree vs Pctused Oracle Khaled Jouini

of 9

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

    [email protected]

    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