Tuesday, December 7, 2010

About TableSpace ...

Prior to 9i, FREELISTS were used keep track of blocks 
within an object which have enough free space to allow 
insertion of a new row. 
Administrators can define the number of FREELISTS and FREELIST 
GROUPS when 
creating an object. The value of the parameter PCTUSED is used 
to place a block in 
and out of the FREELIST. 
(a freelist is a one-way linked list, with NEXT pointers indicating 
the data block addresses (say XXX) of the next free block. 
In addition, when a block is added to the freelist, a flag in 
the header of the free block is set to indicate that it is on 
the freelist chain; another bucket in the block header will 
contain the XXXX of the 
next free block in the segment.)
 
The new mechanism makes the space management within an object 
completely transparent by using bitmaps to track the space 
utilization of each data block allocated to the object. 
The state of the bitmap indicates how much
free space exists in a given data block 
(i.e. > 75%, between 50 and 75%, between 25 to 
50% or < 25%) as well as whether it is formatted or not. 
 
The new implementation eliminates the necessity to 
tune space management related 
controls (such as FREELISTS, FREELIST GROUPS and PCTUSED) 
thereby freeing database administrators from manually managing the 
space within a database object. 
At the same time, it improves the space utilization since the 
database now has a more accurate knowledge of how 
free a data block is. 
This enables better reuse of the available free space 
especially for objects 
with rows of highly varying size. 
 
Additionally, the Automatic Segment Space Management 
feature improves the performance of concurrent DML 
operations significantly since different parts of 
the bitmap can be used simultaneously eliminating 
serialization for free space lookups.
[ See ID 180608.1]
 
  

No comments:

Post a Comment