I have a table that contains several columns defined between VARCHAR2(100) to VARCHAR@(254). As the table gets updates, ORACLE begins to chain the rows.
My understanding is the chaining occurrs becasue when the table was created, ORACLE initialized the VARCHAR2 columns with 'one' character for a "place holder" so to speak.
When the table is updated, actual data pushes the rows outside the initial block space, forcing ORACLE to begin chaining the rows.
My observation indicates that most of the VARCHAR2 columns defined over 100 characters, will actually be populated with text taking about 50% of the defined space. ( a VARCHAR2(100) will, on the average, contain at least 50 characters).
To avoid chaining (and serious performance hits) I am trying to force ORACLE to create the table space (and setting up the block space) expecting the identified columns to contain, 50% data, rather than using one character.
If ORACLE 8, 8i, 9i, permits this 'forcing', how is this performed ?
What other tuning possibilites should I consider ?
My understanding is the chaining occurrs becasue when the table was created, ORACLE initialized the VARCHAR2 columns with 'one' character for a "place holder" so to speak.
When the table is updated, actual data pushes the rows outside the initial block space, forcing ORACLE to begin chaining the rows.
My observation indicates that most of the VARCHAR2 columns defined over 100 characters, will actually be populated with text taking about 50% of the defined space. ( a VARCHAR2(100) will, on the average, contain at least 50 characters).
To avoid chaining (and serious performance hits) I am trying to force ORACLE to create the table space (and setting up the block space) expecting the identified columns to contain, 50% data, rather than using one character.
If ORACLE 8, 8i, 9i, permits this 'forcing', how is this performed ?
What other tuning possibilites should I consider ?