Just nu i M3-nätverket
Gå till innehåll

SQL-Fragmentering???


Peter Jansson

Rekommendera Poster

Peter Jansson

Hej!

Jag undrar vad är internily/externily fragmentering av index i SQL det finns ingen info i MS SQL bok och ej heller i books online Anlednoingen till att jag frågar är att det fanns en sådan fråg på Cert provet i SQL. Kanske var det ett trick från Microsoft

Länk till kommentar
Dela på andra webbplatser

  • 2 veckor senare...
Bo Anders Svensson

För att förstå vad fragmentering i allmänhet är bör man känna till hur ett datorsystem generellt arbetar med sitt minne.

 

Minne allokeras i block (vare sig det är på disk elller i primär minnet.).

 

Antag att ett block är 1024 bytes stort. Vill jag spara något som är 512 bytes stort så ber jag kanske om 512 bytes, men får ett utrymme på 1024 av operativsystemet, nämligen minsta möjliga allokerbara enhet. Nu kommer mina 512 bytes att ta upp 1024 bytes minne i systemet. Dessa extra oanvända bytes i blocket benämnas internfragmentering.

 

Extern fragmentering å andra sidan är när en sekvens av fria block avbryts av ett (eller flera) allokerade minnesblock i systemet. Dvs man kanske har 10 MB ledigit minne, men det största lediga kontunerliga minnesblocket kanske bara är 5 MB, dvs mitt i den stora fria minens polen finns ett uppallokerad minnes del som bryter ned det största möjliga kontunerliga minnes blocket.

 

Man vill normalt undvika fragmentering pga att det påverkar prestandan på ett negativt sätt. Det finns diverse olika algoritmer att hantera fragmentering på. Men det är överkurs för frågeställningen så vi vi skipar det.

 

 

Ovan är den generella innebörden av extern och intern fragmentering. Vad intern respektive extern fragementering av index för SQL server då kan tänkas betyda lämnas som övning åt läsaren.

 

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...