Crearea indexurilor clusterizate și non-clusterizate în SQL Server



Încercați Instrumentul Nostru Pentru Eliminarea Problemelor

Într-un server SQL, există două tipuri de indici; Indici grupați și non-grupați. Atât indicii grupați, cât și indicii non-grupați au aceeași structură fizică. Mai mult, ambele sunt stocate în SQL Server ca o structură B-Tree.



Indice grupat:

O listă grupată este un anumit tip de index care rearanjează stocarea fizică a înregistrărilor în tabel. În cadrul SQL Server, indexurile sunt utilizate pentru a accelera operațiunile bazei de date, ceea ce duce la performanțe ridicate. Prin urmare, tabelul poate avea un singur index grupat, care se face de obicei pe cheia primară. Nodurile frunze ale unui index grupat conțin „Pagini de date”. Un tabel poate avea un singur index grupat.



Să creăm un index grupat pentru a înțelege mai bine. În primul rând, trebuie să creăm o bază de date.



Crearea bazei de date

Pentru a crea o bază de date. Faceți clic dreapta pe „Baze de date” în exploratorul de obiecte și selectați „Bază de date nouă” opțiune. Tastați numele bazei de date și faceți clic pe ok. Baza de date a fost creată așa cum se arată în figura de mai jos.

Crearea tabelelor utilizând vizualizarea de proiectare

Acum vom crea un tabel numit 'Angajat' cu cheia primară utilizând vizualizarea de proiectare. Putem vedea în imaginea de mai jos că am atribuit în principal fișierului numit „ID” și nu am creat niciun index pe masă.



Crearea unui tabel numit „Angajat” cu ID-ul ca cheie principală

De asemenea, puteți crea un tabel executând următorul cod.

USE [test] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo]. [Angajat] ([ID] [int] IDENTITY (1,1) NOT NULL, [Dep_ID] [int] NULL, [Name] [ varchar] (200) NULL, [e-mail] [varchar] (250) NULL, [oraș] [varchar] (250) NULL, [adresă] [varchar] (500) NULL, CONSTRAINT [Primary_Key_ID] PRIMARY KEY CLUSTERED ([ID ] ASC) CU (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY] GO

Ieșirea va fi după cum urmează.

Crearea unui tabel numit „Angajat” cu ID-ul ca cheie principală

Codul de mai sus a creat un tabel numit 'Angajat' cu un câmp ID, un identificator unic ca cheie primară. Acum, în acest tabel, un index grupat va fi creat automat pe ID-ul coloanei din cauza constrângerilor cheii primare. Dacă doriți să vedeți toți indicii dintr-un tabel rulați procedura stocată „Sp_helpindex”. Executați următorul cod pentru a vedea toate indexurile pe o tabelă numită 'Angajat'. Această procedură de stocare ia un nume de tabel ca parametru de intrare.

USE test EXECUTE sp_helpindex Angajat

Ieșirea va fi după cum urmează.

„Sp_helpindex” va afișa toți indicii de pe tabela angajaților.

Un alt mod de a vizualiza indexurile tabelelor este să accesați 'Mese' în obiectul explorator. Selectați tabelul și cheltuiți-l. În folderul indexuri, puteți vedea toate indexurile relevante pentru acel tabel specific așa cum se arată în figura de mai jos.

Vizualizarea tuturor indexurilor în tabel

Deoarece acesta este indexul grupat, ordinea logică și fizică a indexului va fi aceeași. Aceasta înseamnă că dacă o înregistrare are un Id de 3, atunci va fi stocată în al treilea rând al tabelului. În mod similar, dacă a cincea înregistrare are un id de 6, va fi stocată în 5alocația mesei. Pentru a înțelege ordinea înregistrărilor, trebuie să executați următorul script.

USE [test] GO SET IDENTITY_INSERT [dbo]. [Employee] ON INSERT [dbo]. [Employee] ([ID], [Dep_ID], [Name], [email], [city], [address]) VALORI ( 8, 6, N'Humbaerto Acevedo