ใน SQL Server มีดัชนีสองประเภท ดัชนีแบบคลัสเตอร์และไม่ใช่คลัสเตอร์ ทั้งดัชนีคลัสเตอร์และดัชนีที่ไม่ใช่คลัสเตอร์มีโครงสร้างทางกายภาพเหมือนกัน ยิ่งไปกว่านั้นทั้งสองจะถูกเก็บไว้ใน SQL Server เป็นโครงสร้าง B-Tree
ดัชนีคลัสเตอร์:
รายการคลัสเตอร์คือดัชนีชนิดหนึ่งที่จัดเรียงการจัดเก็บทางกายภาพของระเบียนในตารางใหม่ ภายใน SQL Server ดัชนีจะถูกใช้เพื่อเร่งการดำเนินการฐานข้อมูลซึ่งนำไปสู่ประสิทธิภาพสูง ตารางจึงสามารถมีดัชนีคลัสเตอร์ได้เพียงดัชนีเดียวซึ่งโดยปกติจะทำกับคีย์หลัก โหนดลีฟของดัชนีคลัสเตอร์ประกอบด้วย “ หน้าข้อมูล” ตารางสามารถมีดัชนีคลัสเตอร์ได้เพียงดัชนีเดียว
ให้เราสร้างดัชนีคลัสเตอร์เพื่อให้มีความเข้าใจที่ดีขึ้น ก่อนอื่นเราต้องสร้างฐานข้อมูล
การสร้างฐานข้อมูล
เพื่อสร้างฐานข้อมูล คลิกขวาที่ “ ฐานข้อมูล” ใน object explorer และเลือก “ ฐานข้อมูลใหม่” ตัวเลือก พิมพ์ชื่อฐานข้อมูลแล้วคลิกตกลง สร้างฐานข้อมูลแล้วดังแสดงในรูปด้านล่าง
การสร้างตารางโดยใช้มุมมองออกแบบ
ตอนนี้เราจะสร้างตารางชื่อ “ พนักงาน” ด้วยคีย์หลักโดยใช้มุมมองออกแบบ เราสามารถเห็นได้จากภาพด้านล่างที่เราได้กำหนดให้กับไฟล์ชื่อ“ ID” เป็นหลักและเราไม่ได้สร้างดัชนีใด ๆ บนตาราง
การสร้างตารางชื่อ“ พนักงาน” โดยมี ID เป็นคีย์หลัก
คุณยังสามารถสร้างตารางโดยเรียกใช้รหัสต่อไปนี้
ใช้ [ทดสอบ] ไปตั้งค่า ANSI_NULLS บน GO SET QUOTED_IDENTIFIER บน GO สร้างตาราง [dbo] [พนักงาน] ([ID] [int] IDENTITY (1,1) ไม่เป็นโมฆะ, [Dep_ID] [int] NULL, [ชื่อ] [ varchar] (200) NULL, [email] [varchar] (250) NULL, [city] [varchar] (250) NULL, [address] [varchar] (500) NULL, CONSTRAINT [Primary_Key_ID] PRIMARY KEY CLUSTERED ([ID ] ASC) ด้วย (PAD_INDEX = ปิด, STATISTICS_NORECOMPUTE = ปิด, IGNORE_DUP_KEY = ปิด, ALLOW_ROW_LOCKS = เปิด, ALLOW_PAGE_LOCKS = เปิด) บน [หลัก]) บน [หลัก] ไป
ผลลัพธ์จะเป็นดังนี้
การสร้างตารางชื่อ“ พนักงาน” โดยมี ID เป็นคีย์หลัก
โค้ดด้านบนได้สร้างตารางชื่อ “ พนักงาน” ด้วยฟิลด์ ID ตัวระบุที่ไม่ซ้ำกันเป็นคีย์หลัก ในตารางนี้ดัชนีคลัสเตอร์จะถูกสร้างขึ้นโดยอัตโนมัติในรหัสคอลัมน์เนื่องจากข้อ จำกัด ของคีย์หลัก หากคุณต้องการดูดัชนีทั้งหมดบนตารางให้เรียกใช้กระบวนงานที่เก็บไว้ “ sp_helpindex” รันโค้ดต่อไปนี้เพื่อดูดัชนีทั้งหมดบนตารางที่มีชื่อว่า “ พนักงาน”. กระบวนงานร้านค้านี้ใช้ชื่อตารางเป็นพารามิเตอร์อินพุต
ใช้การทดสอบ EXECUTE sp_helpindex Employee
ผลลัพธ์จะเป็นดังนี้
“ sp_helpindex” จะแสดงดัชนีทั้งหมดในตารางพนักงาน
อีกวิธีในการดูดัชนีตารางคือไปที่ “ ตาราง” ใน object explorer เลือกตารางและใช้จ่าย ในโฟลเดอร์ดัชนีคุณสามารถดูดัชนีทั้งหมดที่เกี่ยวข้องกับตารางเฉพาะดังที่แสดงในรูปด้านล่าง
การดูดัชนีทั้งหมดในตาราง
เนื่องจากนี่คือดัชนีคลัสเตอร์ดังนั้นลำดับตรรกะและทางกายภาพของดัชนีจะเหมือนกัน ซึ่งหมายความว่าถ้าระเบียนมี Id เป็น 3 ก็จะถูกเก็บไว้ในแถวที่สามของตาราง ในทำนองเดียวกันถ้าระเบียนที่ห้ามี id เป็น 6 ก็จะถูกเก็บไว้ใน 5ธตำแหน่งของโต๊ะ เพื่อให้เข้าใจลำดับของระเบียนคุณต้องเรียกใช้สคริปต์ต่อไปนี้
USE [test] GO SET IDENTITY_INSERT [dbo]. [Employee] ON INSERT [dbo]. [Employee] ([ID], [Dep_ID], [Name], [email], [city], [address]) VALUES ( 8, 6, N'Humbaerto Acevedo