Oprettelse af klyngede og ikke-klyngede indekser i SQL Server



Prøv Vores Instrument Til At Fjerne Problemer

I en SQL Server findes to typer indekser; Klyngede og ikke-klyngede indekser. Både klyngede indekser og ikke-klyngede indekser har samme fysiske struktur. Desuden er begge gemt i SQL Server som en B-Tree-struktur.



Klynget indeks:

En klyngeliste er en bestemt type indeks, der omarrangerer den fysiske lagring af poster i tabellen. Inden for SQL Server bruges indekser til at fremskynde databasefunktioner, hvilket fører til høj ydeevne. Tabellen kan derfor kun have et klynget indeks, hvilket normalt udføres på den primære nøgle. Et klynget indeks indeholder bladknudepunkter “Datasider”. En tabel kan kun have ét grupperet indeks.



Lad os oprette et grupperet indeks for at få en bedre forståelse. Først og fremmest skal vi oprette en database.



Oprettelse af database

For at oprette en database. Højreklik på “Databaser” i objektudforsker, og vælg “Ny database” mulighed. Indtast navnet på databasen, og klik på ok. Databasen er oprettet som vist i nedenstående figur.

Oprettelse af bord ved hjælp af designvisningen

Nu opretter vi en tabel med navnet “Medarbejder” med den primære nøgle ved hjælp af designvisningen. Vi kan se på billedet nedenfor, vi primært har tildelt det arkiverede navn 'ID', og vi har ikke oprettet noget indeks på bordet.



Oprettelse af en tabel med navnet 'Medarbejder' med ID som den primære nøgle

Du kan også oprette en tabel ved at udføre følgende kode.

BRUG [test] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo]. [Medarbejder] ([ID] [int] IDENTITET (1,1) IKKE NULL, [Dep_ID] [int] NULL, [Navn] [ varchar] (200) NULL, [email] [varchar] (250) NULL, [city] [varchar] (250) NULL, [address] [varchar] (500) NULL, CONSTRAINT [Primary_Key_ID] PRIMARY KEY CLUSTERED ([ID ] ASC) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY] GO

Outputtet vil være som følger.

Oprettelse af en tabel med navnet 'Medarbejder' med ID som den primære nøgle

Ovenstående kode har oprettet en tabel med navnet “Medarbejder” med et ID-felt, en unik identifikator som en primær nøgle. Nu i denne tabel oprettes et grupperet indeks automatisk på kolonne-id på grund af primære nøglebegrænsninger. Hvis du vil se alle indekserne på en tabel, skal du køre den lagrede procedure “Sp_helpindex”. Udfør følgende kode for at se alle indekser på en tabel, der hedder “Medarbejder”. Denne butiksprocedure tager et tabelnavn som inputparameter.

BRUGSTEST UDFØR sp_helpindex Medarbejder

Outputtet vil være som følger.

“Sp_helpindex” viser alle indekser på medarbejderbordet.

En anden måde at se tabelindekser er at gå til “Borde” i objektudforsker. Vælg tabellen, og brug den. I indeksmappen kan du se alle de indekser, der er relevante for den specifikke tabel, som vist i figuren nedenfor.

Visning af alle indekser i tabellen

Da dette er det klyngede indeks, vil den logiske og fysiske rækkefølge af indekset være den samme. Dette betyder, at hvis en post har en Id på 3, gemmes den i den tredje række i tabellen. Tilsvarende, hvis den femte post har en id på 6, gemmes den i 5thplaceringen af ​​bordet. For at forstå rækkefølgen af ​​poster skal du udføre følgende script.

BRUG [test] GO SET IDENTITY_INSERT [dbo]. [Medarbejder] PÅ INSERT [dbo]. [Medarbejder] ([ID], [Dep_ID], [Navn], [e-mail], [by], [adresse]) VÆRDIER ( 8, 6, N'Humbaerto Acevedo