Hva er en Heap i SQL?

Structured Query Language (SQL) er et programmeringsspråk som brukes for database management. I en SQL-server - et databasesystem (DBMS) som kan svare på spørsmål som er formatert i SQL - data lagres i tabeller av rader eller poster, og kolonner, eller felt. Hvis dataene i tabellen ikke er sortert i en bestemt, logisk rekkefølge, er tabellen kjent som en haug bord, eller haug.

data Sider

Plass i en SQL server database er delt inn i en rekke like store enheter, kalt sider, hver med en logisk, sekvensiell sidetall. Sidene er inndelt i mindre enheter som kalles tildelingsenheter. En haug er rett og slett en uordnet samling av datasider uten gruppert indeks.

gruppert Index

En gruppert indeks er et lagringsstruktur i en database tabell, separat fra datasidene. En gruppeindeks bestemmer den fysiske rekkefølgen på dataene i en tabell, og har som formål å gi raskere tilgang til dataene, spesielt for kolonner ofte søkte for områder av verdi. Når DBMS finner raden med den første verdi ved hjelp av klynge indeksen, er alle etterfølgende radene garantert å være fysisk tilstøtende.

Legge til data

En haug tabellen har ingen gruppert indeks, så forskjellige datasider okkupere ulike ikke-tilstøtende områder på en harddisk og er ikke knyttet sammen på noen måte. Alle nye data blir lagt til på slutten av et bord. Databasesystemet inneholder en oversikt over den siste siden i tabellen og bare legger poster til den siden til den er full, før du legger til en ny side til bordet. Haugen strukturen er den raskeste måten å legge til data i en tabell, men er ikke veldig effektivt for å hente data.

Hente data

For å hente data fra en haug bordet, er en DBMS tvunget til å bruke en "brute force" metode for innhenting av data, kjent som en tabellskanning. Fraværet av et klynge indeks betyr DBMS må skanne alle data siden i tabellen, som er enormt ineffektiv. Videre, fordi datasider okkupere ikke-tilstøtende områder, kan en haug bord bli fragmentert over overflaten av en harddisk. Den eneste måten å eliminere fragmentering er å kopiere haug bordet til en ny tabell eller opprette en gruppert indeks på bordet, og da den opphører å være en haug bord. Til slutt, hvis en rad i en haug tabell flyttes, skaper DBMS en peker fra den gamle plasseringen til den nye. Dersom raden blir beveget igjen, skaper DBMS en annen peker og så videre. Pekere bety DBMS trenger for å utføre flere input / output operasjoner og redusere effektiviteten av innhenting av data ytterligere.