programmera.net -> oracledba -> normal för utskrift | info@programmera.net |
ASSM
1. Vad är ASSM? 2. Bitmappad FREELIST 3. FREELIST i trädstruktur 4. Fördelar och Nackdelar med ASSM |
1. Vad är ASSM?
ASSM (Automatic Segment Space Management) är en strategi för att hitta block där det finns plats att lägga till nya rader. ASSM löser alltså samma problem som
MSSM , men med några skillnader som kommer att beskrivas på denna sida.
2. Bitmappad FREELIST
ASSM använder sig av en Bitmappad FREELIST. Varje block har alltså en bitmappad kod som beskriver dess status, se tabellen nedan:
Kod Beskrivning 0000 Oformatterat block. 0001 Blocket är logiskt fullt. 0010 0% < Fritt utrymme < 25%. 0011 25% < Fritt utrymme < 50%. 0100 50% < Fritt utrymme < 75%. 0101 75% < Fritt utrymme < 100%.
I ASSM placerar alltså alla block någonstans på en femgradig skala. Den algoritm som används för att bestämma vilket block som ska användas vid en INSERT håller Oracle hemlig.
3. FREELIST i trädstruktur
Den bitmappade FREELIST som utnyttjas av ASSM lagras i en trädstruktur istället för en länkad lista som MSSM. Detta medför att att det är lättare för flera samtidiga användare att utnyttja listan, eftersom man kan utnyttja delar av trädet utan att bry sig om vad som händer i andra delar.
4. Fördelar och Nackdelar med ASSM
Oracle rekommenderar att man utnyttjar ASSM av tre anledningar:
ASSM passar extra bra för RAC-användare, som i MSSM måste lägga stor omsorg på att skapa multipla FREELISTs för varje tabell. Följande nackdelar har identifierats:
Hur som helst rekommenderar Oracle att alla använder ASSM.