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