DBAsupport.com Forums - Powered by vBulletin
Results 1 to 7 of 7

Thread: Row chaining

  1. #1
    Join Date
    Sep 2001
    Location
    Düsseldorf, Germany.
    Posts
    588
    Hi,

    I have a table with four columns

    1. id NUMBER
    2. text1 VARCHAR2(4000)
    3. text2 VARCHAR2(4000)
    4. text3 VARCHAR2(4000)


    pctfree 10

    My db_block_size is 8192,

    Does this mean, with above parameters, row chainging will always take place, if data is inserted to full capacity of column.

    How pctfree parameter will help if my row length exceeds the db_block_size parameter as in above table.

    Thanks

    Sameer


    [Edited by Sameer on 08-24-2002 at 11:27 AM]

  2. #2
    Join Date
    Apr 2001
    Location
    Brisbane, Queensland, Australia
    Posts
    1,203
    You'll have constant chaining for this table with an 8k block. If you are using 9i, you could create a tablespace with a larger blocksize.

    Cheers
    OCP 8i, 9i DBA
    Brisbane Australia

  3. #3
    Join Date
    Sep 2001
    Location
    Düsseldorf, Germany.
    Posts
    588
    This means in versions before 9i, if the rowlength exceeds db_block_buffers then row chaing will take place if data is inserted to full capacity of column..


  4. #4
    Join Date
    Apr 2001
    Location
    Brisbane, Queensland, Australia
    Posts
    1,203
    If inserted larger than db_block_size, then yes. The idea is to have a block size large enough to accomidate your rows. Remember, storage and performance go hand in hand.
    OCP 8i, 9i DBA
    Brisbane Australia

  5. #5
    Join Date
    Sep 2001
    Location
    Düsseldorf, Germany.
    Posts
    588
    Originally posted by grjohnson
    If inserted larger than db_block_size, then yes. The idea is to have a block size large enough to accomidate your rows. Remember, storage and performance go hand in hand.
    Thanks for the reply..

    But in case of large and wide (many columns especially with with varchar2) tables it is difficult to control row length below db_block_size.

    I have few tables which stores medicine procedures and diagnosis, and it difficult to chop table in two different tables.
    and these tables row length is more than db_block_size..

    Any suggestion in this scenario..

    Thanks

    Sameer

  6. #6
    Join Date
    Apr 2001
    Location
    Brisbane, Queensland, Australia
    Posts
    1,203
    Unfortunatly not, if using Oracle server < 9i, your only alternative (if it really is affecting performance is create a new database with a larger block_size). It depends on the impact of the system, sure it's very undesirable. How many records are in the table etc?
    OCP 8i, 9i DBA
    Brisbane Australia

  7. #7
    Join Date
    Apr 2001
    Posts
    219
    It all depends on the avg. row length, if the entries are lite then they should fit. If not, then you will have chaining.
    ______________________
    Applications come and go,
    but the data remains!

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  


Click Here to Expand Forum to Full Width