Lumilikha ng Clustered at Non-Clustered Index sa SQL Server



Subukan Ang Aming Instrumento Para Sa Pagtanggal Ng Mga Problema

Sa isang SQL Server, may dalawang uri ng mga indeks na umiiral; Mga clustered at hindi clustered index. Ang parehong mga clustered index at hindi clustered index ay may parehong pisikal na istraktura. Bukod dito, pareho ang mga ito ay nakaimbak sa SQL Server bilang isang istraktura ng B-Tree.



Clustered index:

Ang isang clustered list ay isang partikular na uri ng index na muling ayusin ang pisikal na imbakan ng mga talaan sa talahanayan. Sa loob ng SQL Server, ginagamit ang mga index upang mapabilis ang mga pagpapatakbo ng database, na humahantong sa mataas na pagganap. Ang talahanayan ay maaaring, samakatuwid, ay may isang clustered index lamang, na karaniwang ginagawa sa pangunahing key. Naglalaman ang mga node ng dahon ng isang clustered index 'Mga pahina ng data'. Ang isang talahanayan ay maaaring magtaglay lamang ng isang clustered index.



Lumikha tayo ng isang clustered index upang magkaroon ng isang mas mahusay na pag-unawa. Una sa lahat, kailangan naming lumikha ng isang database.



Paglikha ng database

Upang makalikha ng isang database. Mag-right click sa 'Mga database' sa object explorer, at piliin 'Bagong database' pagpipilian I-type ang pangalan ng database at mag-click sa ok. Ang database ay nilikha tulad ng ipinakita sa pigura sa ibaba.

Paglikha ng talahanayan gamit ang view ng disenyo

Ngayon ay lilikha kami ng isang talahanayan na pinangalanan 'Empleado' gamit ang pangunahing key sa pamamagitan ng paggamit ng view ng disenyo. Maaari nating makita sa larawan sa ibaba na itinalaga namin lalo na sa na-file na pinangalanang 'ID' at wala kaming nilikha na anumang index sa talahanayan.



Lumilikha ng isang talahanayan na pinangalanang 'Empleyado' na may ID bilang pangunahing key

Maaari ka ring lumikha ng isang talahanayan sa pamamagitan ng pagpapatupad ng sumusunod na code.

GAMITIN [test] GO SET ANSI_NullS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo]. [Empleyado] ([ID] [int] IDENTITY (1,1) HINDI NULL, [Dep_ID] [int] NULL, [Pangalan] [ varchar] (200) NULL, [email] [varchar] (250) NULL, [city] [varchar] (250) NULL, [address] [varchar] (500) NULL, CONSTRAINT [Pangunahing_Key_ID] PANGUNAHING KEY CLUSTERED ([ID ] ASC) MAY (PAD_INDEX = OFF, STATISTICS_NORECOMPute = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY] GO

Ang output ay magiging tulad ng sumusunod.

Lumilikha ng isang talahanayan na pinangalanang 'Empleyado' na may ID bilang pangunahing key

Ang code sa itaas ay lumikha ng isang talahanayan na pinangalanan 'Empleado' na may isang patlang na ID, isang natatanging identifier bilang pangunahing key. Ngayon sa talahanayan na ito, isang clustered index ay awtomatikong malilikha sa ID ng haligi dahil sa pangunahing mga hadlang. Kung nais mong makita ang lahat ng mga index sa isang talahanayan patakbuhin ang nakaimbak na pamamaraan 'Sp_helpindex'. Isagawa ang sumusunod na code upang makita ang lahat ng mga index sa isang talahanayan na pinangalanan 'Empleado'. Ang pamamaraan ng store na ito ay tumatagal ng isang pangalan ng talahanayan bilang isang input parameter.

USE test EXECUTE sp_helpindex empleyado

Ang output ay magiging tulad ng sumusunod.

Ipapakita ng 'sp_helpindex' ang lahat ng mga index sa talahanayan ng empleyado.

Ang isa pang paraan upang tingnan ang mga index ng talahanayan ay upang pumunta sa 'Mga mesa' sa object explorer. Piliin ang talahanayan at gugulin ito. Sa folder ng mga index, maaari mong makita ang lahat ng mga index na nauugnay sa tukoy na talahanayan na tulad ng ipinakita sa figure sa ibaba.

Pagtingin sa lahat ng mga index sa talahanayan

Dahil ito ang clustered index kaya't ang lohikal at pisikal na pagkakasunud-sunod ng index ay magiging pareho. Nangangahulugan ito kung ang isang talaan ay mayroong Id ng 3, pagkatapos ay maiimbak ito sa ikatlong hilera ng talahanayan. Katulad nito, kung ang ikalimang talaan ay mayroong id ng 6, maiimbak ito sa 5ikalokasyon ng talahanayan. Upang maunawaan ang pag-order ng mga tala, kailangan mong ipatupad ang sumusunod na script.

GAMITIN [test] GO SET IDENTITY_INSERT [dbo]. [Empleyado] SA INSERT [dbo]. [Empleyado] ([ID], [Dep_ID], [Pangalan], [email], [city], [address]) VALUES ( 8, 6, N'Humbaerto Acevedo