About Me

Wednesday 11 April 2012

EXTENT MANAGEMENT and SEGMENT SPACE MANAGEMENT


Many of the people often get confused between segment space management and extent management. These two terms are totally different and can be understood in following way.

EXTENT MANAGEMENT- Whenever a segment will be full and needs extra space then oracle automatically allocates space in the forms of extents(collection of continuous blocks) .How this extent will be allocated and What will be size of this newly allocated extent is decided by extent management according to storage parameters. You can define storage parameters (initial,next,minextents,maxextents,pctincrease...) in case of dictionary managed tablespace(DMTS) but not for locally managed tablespaces(LMTS). In LMTS we have options of AUTOALLOCATE  and UNIFORM. If we give AUTO then Oracle takes the default value of storage parameter like 64k for INITIAL and MINEXTENT 1 and so on. In case of UNIFORM , a uniform size will be given to a newly allocated extent always( 1 mb in case of temporary tablespace which takes UNIFORM  extent size).

SEGMENT SPACE MANAGEMENT- SSM is related to management of free blocks in segments and can be AUTO(recommended) or MANUAL in case of LMTS and MANUAL in case of DMTS. In MANUAL ,oracle maintains a list of free blocks in the form of linked list and has to scan all the blocks(costly) to update this list with new information . In AUTO ,oracle maintains a bitmap to record the information of free blocks . If bit is 1 then block is not free and free if bit is 0. Default is AUTO. In this way AUTO is beneficial than the MANUAL method of segment space management. If SSM is AUTO then we call it as ASSM (automatic segment space management).