Opprett gruppert indeks i SQL Server

Opprett gruppert indeks i SQL Server
Indekser spiller en kritisk rolle i databaser. De fungerer som indekser i en bok, slik at du kan søke og finne forskjellige elementer og emner i en bok. Indekser i en database utfører på samme måte og hjelper til med å fremskynde søkehastigheten for poster som er lagret i en database. Opprett gruppert indeks i SQL Server er forklart i denne artikkelen.

Indekser spiller en kritisk rolle i databaser. De fungerer som indekser i en bok, slik at du kan søke og finne forskjellige elementer og emner i en bok. Indekser i en database utfører på samme måte og hjelper til med å fremskynde søkehastigheten for poster som er lagret i en database.

Clustered indekser er en av indekstypene i SQL Server. Den brukes til å definere rekkefølgen som data lagres i en tabell. Det fungerer ved å sortere postene på et bord og deretter lagre dem.

I denne opplæringen lærer du om grupperte indekser i en tabell og hvordan du kan definere en gruppert indeks i SQL Server.

SQL Server grupperte indekser

Før vi forstår hvordan vi oppretter en gruppert indeks i SQL Server, la oss lære hvordan indekser fungerer.

Tenk på eksemplet nedenfor for å lage en tabell ved hjelp av en grunnleggende struktur.

Opprett database Product_Inventory;
Bruk Product_Inventory;
Lag tabellbeholdning (
id int ikke null,
produktnavn varchar (255),
Pris int,
Mengde int
);

Deretter setter du inn noen eksempeldata i tabellen, som vist i spørringen nedenfor:

Sett inn i varelager (ID, produktnavn, pris, mengde) verdier
(1, 'Smart Watch', 110.99, 5),
(2, 'MacBook Pro', 2500.00, 10),
(3, 'Winter Coats', 657.95, 2),
(4, 'Office Desk', 800.20, 7),
(5, 'loddejern', 56.10, 3),
(6, 'Telefonstativ', 8.95, 8);

Eksempletabellen ovenfor har ikke en primær nøkkelbegrensning definert i kolonnene sine. Derfor lagrer SQL Server postene i en uordnet struktur. Denne strukturen er kjent som en haug.

Anta at du må utføre et spørsmål for å finne en bestemt rad i tabellen? I et slikt tilfelle vil den tvinge SQL Server til å skanne hele tabellen for å finne den matchende posten.

Tenk for eksempel på spørringen.

Velg * fra varelager der mengde = 8;

Hvis du bruker den estimerte utførelsesplanen i SSMS, vil du legge merke til at spørringen skanner hele tabellen for å finne en enkelt post.

Selv om ytelsen neppe merkes i en liten database som den ovenfor, i en database med et humongøst antall poster, kan spørringen ta lengre tid å fullføre.

En måte å løse et slikt tilfelle er å bruke en indeks. Det er forskjellige typer indekser i SQL Server. Imidlertid vil vi hovedsakelig fokusere på grupperte indekser.

Som nevnt lagrer en gruppert indeks dataene i et sortert format. En tabell kan ha en gruppert indeks, da vi bare kan sortere dataene i en logisk rekkefølge.

En gruppert indeks bruker B-tre-strukturer for å organisere og sortere dataene. Dette lar deg utføre innlegg, oppdateringer, sletter og mer operasjoner.

Legg merke til i forrige eksempel; Tabellen hadde ikke en primærnøkkel. Derfor oppretter SQL Server ingen indeks.

Imidlertid, hvis du oppretter en tabell med en primær nøkkelbegrensning, oppretter SQL Server automatisk en gruppert indeks fra den primære nøkkelkolonnen.

Se hva som skjer når vi lager tabellen med en primær nøkkelbegrensning.

Lag tabellbeholdning (
id int ikke null primærnøkkel,
produktnavn varchar (255),
Pris int,
Mengde int
);

Hvis du kjører på nytt SELECT-spørringen og bruker den estimerte utførelsesplanen, ser du at spørringen bruker en gruppert indeks som:

Velg * fra varelager der mengde = 8;

På SQL Server Management Studio kan du se tilgjengelige indekser for en tabell ved å utvide indeksgruppen som vist:

Hva skjer når du legger til en primær nøkkelbegrensning til en tabell som inneholder en gruppert indeks? SQL Server vil bruke begrensningen i en ikke-klynget indeks i et slikt scenario.

SQL Server Opprett gruppert indeks

Du kan opprette en gruppert indeks ved hjelp av Create Clustered Index -setningen i SQL Server. Dette brukes hovedsakelig når måltabellen ikke har en primær nøkkelbegrensning.

Tenk for eksempel følgende tabell.

Slippbord hvis eksisterer varelager;
Lag tabellbeholdning (
id int ikke null,
produktnavn varchar (255),
Pris int,
Mengde int
);

Siden tabellen ikke har en primærnøkkel, kan vi opprette en gruppert indeks manuelt, som vist i spørringen nedenfor:

Lage gruppert indeks ID_INDEX på Inventory (ID);

Spørringen over oppretter en gruppert indeks med navnet ID_INDEX på lagerets tabell ved hjelp av ID -kolonnen.

Hvis vi blar etter indekser i SSM -er, bør vi se ID_INDEX som:

Pakk opp!

I denne guiden utforsket vi konseptet med indekser og grupperte indekser i SQL Server. Vi dekket også hvordan du oppretter en gruppert nøkkel på en databasetabell.

Takk for at du leser, og følg med for flere SQL Server -opplæringsprogrammer.