Stvaranje klasteriziranih i neklasteriziranih indeksa u SQL Serveru



Isprobajte Naš Instrument Za Uklanjanje Problema

U SQL poslužitelju postoje dvije vrste indeksa; Klasterirani i neklasterizirani indeksi. I klasterizirani indeksi i neklasterizirani indeksi imaju istu fizičku strukturu. Štoviše, oboje su pohranjeni u SQL Server kao struktura B-stabla.



Grupirani indeks:

Klasterizirani popis posebna je vrsta indeksa koji preuređuje fizičku pohranu zapisa u tablici. Unutar SQL Servera indeksi se koriste za ubrzavanje operacija baze podataka, što dovodi do visokih performansi. Tablica, prema tome, može imati samo jedan klasterizirani indeks, što se obično radi na primarnom ključu. Čvorovi lista klasteriziranog indeksa sadrže “Stranice s podacima”. Tablica može posjedovati samo jedan klasterizirani indeks.



Stvorimo klasterizirani indeks da bismo imali bolje razumijevanje. Prije svega, moramo stvoriti bazu podataka.



Izrada baze podataka

Da bi se stvorila baza podataka. Desnom tipkom miša kliknite 'Baze podataka' u istraživaču objekata i odaberite “Nova baza podataka” opcija. Upišite naziv baze podataka i kliknite na ok. Baza podataka kreirana je kako je prikazano na donjoj slici.

Stvaranje tablice pomoću prikaza dizajna

Sada ćemo stvoriti tablicu s imenom 'Zaposlenik' s primarnim ključem pomoću prikaza dizajna. Na donjoj slici možemo vidjeti da smo primarno dodijelili datoteku pod nazivom 'ID' i nismo stvorili nijedan indeks na tablici.



Stvaranje tablice s nazivom 'Zaposlenik' s ID-om kao primarnim ključem

Tablicu možete stvoriti i izvršavanjem sljedećeg koda.

KORISTITE [test] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo]. [Zaposlenik] ([ID] [int] IDENTITET (1,1) NULL, [Dep_ID] [int] NULL, [Ime] [ varchar] (200) NULL, [email] [varchar] (250) NULL, [grad] [varchar] (250) NULL, [adresa] [varchar] (500) NULL, OGRANIČENJE [Primary_Key_ID] PRIMARNI KLJUČ KLASERIRAN ([ID ] ASC) SA (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ON ON [PRIMARY] GO

Izlaz će biti sljedeći.

Stvaranje tablice s nazivom 'Zaposlenik' s ID-om kao primarnim ključem

Gornji kod stvorio je tablicu s imenom 'Zaposlenik' s ID poljem, jedinstvenim identifikatorom kao primarnim ključem. Sada će se u ovoj tablici klasterizirani indeks automatski stvoriti na ID-u stupca zbog ograničenja primarnog ključa. Ako želite vidjeti sve indekse na tablici, pokrenite pohranjenu proceduru “Sp_helpindex”. Izvršite sljedeći kod da biste vidjeli sve indekse na tablici s imenom 'Zaposlenik'. Ovaj postupak spremanja uzima naziv tablice kao ulazni parametar.

USE test IZVRŠI sp_helpindex Zaposlenik

Izlaz će biti sljedeći.

“Sp_helpindex” prikazat će sve indekse na tablici zaposlenika.

Drugi način pregledavanja indeksa tablica je odlazak na 'Stolovi' u istraživaču predmeta. Odaberite tablicu i potrošite je. U mapi indeksi možete vidjeti sve indekse relevantne za tu određenu tablicu kako je prikazano na donjoj slici.

Pregled svih indeksa u tablici

Kako je ovo klasterirani indeks, tako će i logički i fizički redoslijed indeksa biti isti. To znači da ako zapis ima Id 3, tada će biti pohranjen u trećem redu tablice. Slično tome, ako peti zapis ima id 6, pohranit će se u 5thmjesto stola. Da biste razumjeli redoslijed zapisa, morate izvršiti sljedeću skriptu.

KORISTITE [test] IDITE POSTAVITI IDENTITY_INSERT [dbo]. [Zaposlenik] NA UMETAK [dbo]. [Zaposlenik] ([ID], [Dep_ID], [Ime], [e-adresa], [grad], [adresa]) VRIJEDNOSTI ( 8, 6, N'Humbaerto Acevedo