4 fremtredende forskjeller mellom heap-tabeller og grupperte tabeller i SQL Server

Den følgende artikkelen forklarer de viktigste forskjellene mellom Heap-tabeller og Clustered-tabeller.

Mens du jobber med tabeller i SQL Server, står brukere ofte overfor dilemmaet å bruke grupperte tabeller eller heap-tabeller. Tabeller som ikke har grupperte indekser kalles haugtabeller og de som har grupperte indekser kalles grupperte tabeller. En Clustered-indeks omorganiserer i utgangspunktet måten poster lagres fysisk i en tabell. Datasidene er inneholdt i bladnodene til en gruppert indeks.

Forskjeller mellom haugtabeller og grupperte tabeller

Artikkelen diskuterer disse to tabelltypene på en mer detaljert måte.

Gruppe- og haugtabeller

De grupperte tabellene gir brukerne flere fordeler enn heap-tabeller ettersom de hjelper brukere med å bruke indekser til å finne rader raskere enn heap-tabeller og fysisk lagre dataene/postene ved å gjenoppbygge den klyngede indeksen.

Dine fysiske data kan bli fragmenterte hvis det er flere INSERT, DELETE og UPDATE-aktiviteter mot tabellene i dataene dine. Det er kjent at fragmenterte data kan øke bortkastet og uønsket plass fordi hvis du kjører en spørring, må den lese flere sider siden det nå er flere delvis hele sider. La oss finne ut måter å løse fragmenteringsproblemet med data på.

Forskjellen mellom heap og gruppert tabell

Fragmenteringsproblem kan løses ved å bestemme behovet for å ha en gruppert indeks i tabellen/tabellene dine eller ikke. Tross alt er det cluster- eller heap-indeksen som regulerer bordets fysiske lagring. Enhver tabell i databasen din kan bare ha én type indeks. For å ta et valg, må vi forstå de grunnleggende forskjellene mellom disse to, som er som følger.

  1. I heap er det ingen rekkefølge i lagring av data, men i Clustered har datalagring en rekkefølge avhengig av clustered indeksnøkkel. 
  2. Datasider er ikke koblet i Heap, mens i Clustered-tabellen er de koblet og det er raskere sekvensiell tilgang.
  3. Heap har 0 index_id-verdi og Clustered har 1 index_id-verdi for sys.indexes-katalogvisning
  4. Clustered Index henter data raskere enn heap-tabellen ettersom det er Clustered Index-nøkkel

Fragmentering

Basert på forskjellene mellom Clustered og Heap Tables kan man løse problemet med fragmentering. Fragmentering oppstår på grunn av bruk av INSERT, DELETE og UPDATE-aktiviteter. Men hvis du har Heap Table og det bare er INSERT-aktivitet, vil ikke fragmentering forekomme. Hvis du bruker sekvensiell indeksnøkkel (Identity Value) og bare har INSERTS, vil ikke den klyngede indeksen bli fragmentert. Men hvis du bruker mange INSERTS eller DELETES, vil tabellene bli fragmentert.

Så det anbefales å bruke Clustered Index da den er avhengig av Index-nøkkelen og bruker mindre plass. Nye poster kan skrives til allerede eksisterende sider på ledig plass.

For å bestemme bruken av enten heap- eller gruppert tabell, kan du også prøve å kjøre DBCC SHOWCONTIG eller ny DMV, da begge disse kommandoene kan gi deg innsikt angående fragmenteringsproblemene i tabellene dine. I den grupperte tabellen kan fragmentering løses ved å omorganisere eller gjenoppbygge den grupperte indeksen.    

Investering i en SQL Server reparasjon verktøyet er et must for selskaper som bruker MS SQL Server database på deres produksjonsservere. Faktisk kan det vise seg å være en livredder i tilfelle en databasekrasj.

Forfatterintroduksjon:

Victor Simon er en datagjenopprettingsekspert innen DataNumen, Inc., som er verdensledende innen datagjenopprettingsteknologier, inkludert reparere mdb og sql-programvareprodukter. For mer informasjon besøk https://www.datanumen.com/

Kommentarer er stengt.