Hi guys,
Just a bit of theoretical stuff to make my understanding clear or to correct my understanding.
First, within tablespace, space is allocated to segments in a unit of an extent at a time.
CREATE [BIGFILE | SMALLFILE] [TEMPORARY] TABLESPACE tablespace name
DATAFILE datafile spec | TEMPFILE tempfile spec
[MINIMUM EXTENT minimum extent size]
[BLOCKSIZE blocksize]
[
COMPRESS DEFAULT STORAGE (default storage clause)]
LOGGING
[FORCE LOGGING]
ONLINE
[EXTENT MANAGEMENT DICTIONARY |
LOCAL [AUTOALLOCATE|UNIFORM SIZE size]]
[SEGMENT SPACE MANAGEMENT MANUAL|AUTO]
[FLASHBACK ON|OFF]
Now, Extent Management and Space Management are two different things.
Extent Management mentions whether you want to keep information about extents (free/used etc.) inside tablespace itself (Extent Management Local) or inside data dictionary (Extent Management Dictionary). Is there anything else to add to this definition or correct it?
Segment Management mentions whether you want to automate this process of managing segments (extents?) by freeing DBA to worry about storage parameters or not. SEGMENT SPACE MANAGEMENT [AUTO | MANUAL] does this while creating tablespace. Anything else here?
Now, we can have 3 different combinations? Not 4?
Extent Mgmt Local Segment Mgmt Auto: Extents are managed locally and free space is tracked via bitmaps.
Extent Mgmt Local Segment Mgmt Manual: Extents are managed locally and free space is tracked via PCTUSED, PCTFREE, FREELISTS etc.
Extent Mgmt Dictionary Segment Mgmt Manual: Extents are managed in data dictionary and free space is tracked via PCTUSED, PCTFREE, FREELISTS etc.
Extent Mgmt Dictionary Segment Mgmt Auto: Sorry, I don't remember if this is possible or not.
Please clarify me if i am wrong. Thanks for your time.
Br,
Anjum