Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> SQL Server

ดัชนีใน SQL Server

บทความนี้จะอธิบายวิธีสร้าง เปลี่ยนชื่อ และลบดัชนีใน SQL Server

ดัชนี - ดัชนีใน SQL Server คืออะไร

การจัดทำดัชนีเป็นวิธีที่ใช้เพื่อดึงข้อมูลระเบียนได้เร็วขึ้น ดัชนีชี้ไปที่แต่ละค่าที่ปรากฏในคอลัมน์ที่จัดทำดัชนี

สร้างดัชนี

ไวยากรณ์

  CREATE [UNIQUE  ] [ CLUSTERED | NONCLUSTERED ] INDEX ten_chimuc  ] [ CLUSTERED | NONCLUSTERED ] INDEX ten_chimuc 
ON ten_bang ( cot1 [ASC | DESC ], . cot_n [ ASC | DESC ] )
[ INCLUDE ( cot1, . cot_n ) ]
[ WHERE dieu_kien ]
[ WITH ( PAD_INDEX = { ON | OFF }
| FILLFACTOR = fillfactor
| SORT_IN_TEMPDB = { ON | OFF }
| IGNORE_DUP_KEY = { ON | OFF }
| STATISTICS_NORECOMPUTE = { ON | OFF }
| STATISTICS_INCREMENTAL = { ON | OFF }
| DROP_EXISTING = { ON | OFF }
| ONLINE = { ON | OFF }
| ALLOW_ROW_LOCKS = { ON | OFF }
| ALLOW_PAGE_LOCKS = { ON | OFF }
| MAXDOP = so_toida
| DATA_COMPRESSION = { NONE | PAGE | ROW }
[ ON PARTITIONS ( { so | khoang } ]
[ ON scheme_phandoan ( cot )
| ON fnhomtaptin | ON nhomtaptin_macdinh ]
[ FILESTR EAM_ON {nhomtaptin | scheme_phandoan }; scheme_phandoan};

UNIQUE

หรือระบุได้ว่าค่าผสมในคอลัมน์ดัชนีต้องไม่ซ้ำกัน

คลัสเตอร์

ระบุลำดับเชิงตรรกะที่กำหนดการจัดเรียงทางกายภาพของแถวในตาราง (เช่น ลำดับของระเบียนในตารางที่จัดเรียงตามเขตข้อมูลในดัชนี)

ไม่มีคลัสเตอร์

หรือระบุลำดับเชิงตรรกะที่ไม่ได้กำหนดการจัดแถวทางกายภาพของแถวในตาราง

ten_chimuc

ชื่อของดัชนีที่คุณต้องการสร้าง

ten_bang

ชื่อของตารางหรือ View ที่สร้างดัชนี

cot1, . cot_n

คอลัมน์ที่สร้างดัชนี

ASC | DESC

เรียงลำดับค่าในคอลัมน์

INCLUDE (cot1, . cot_n)

หรือ คอลัมน์ไม่ใช่คอลัมน์หลักที่จะเพิ่มไปยังระดับ leafy ของดัชนี Nonclustered

WHERE dieu_kien

ไม่บังคับ เป็นเงื่อนไขที่กำหนดแถวที่จะรวมในดัชนี

ON scheme_phanvung (cot)

หรือระบุพื้นที่พาร์ติชั่นที่กำหนดกลุ่มไฟล์ (กลุ่มไฟล์) ที่พาร์ติชั่นถูกแมป

ON nhomtaptin

ระบุได้ว่าจะสร้างดัชนีในกลุ่มไฟล์ที่ระบุหรือไม่

เปิด nhomtaptin_macdinh

ไม่บังคับ ระบุกลุ่มไฟล์เริ่มต้น

FILESTREAM_ON {nhomtaptin | khongigna_phanvung } khongigna_phanvung}

ระบุตำแหน่งของข้อมูล FILESTREAM สำหรับดัชนีแบบคลัสเตอร์หรือไม่ก็ได้

ตัวอย่างดัชนีใน SQL Server

  CREATE IND EX danhba_chimuc 
ON danhba (h o);

ในตัวอย่างนี้ เราสร้างดัชนีชื่อ danhba_chimuc ในรายการ รวมถึงฟิลด์ที่เรียกว่าไอ สามารถสร้างดัชนีได้มากกว่า 1 ช่อง ดังตัวอย่างด้านล่าง

  C REATE INDEX danhba_chimuc 
ON da (cough, ten);

ตัวอย่างนี้สร้างรายการของnameba_chimucในรายชื่อ ซึ่งรวมถึงสองฟิลด์ ไอ และสิบ เนื่องจากไม่ได้ระบุ ASC หรือ DESC สำหรับแต่ละรายการ ดัชนีที่สร้างโดยแต่ละฟิลด์ในลำดับเริ่มต้นจะเพิ่มขึ้น หากต้องการเรียงจากมากไปน้อย ให้ทำดังนี้

  CREATE INDEX list name 
ON danhba (ho DESC, te n DESC);

คำสั่ง CREATE INDEX ด้านบนจะสร้างเฉพาะชื่อผู้ใช้และ _chimuc โดยเรียงชื่อและนามสกุลตามลำดับจากมากไปน้อย

ตัวอย่างดัชนีที่ไม่ซ้ำ

  CREATE UNIQUE IN DEX danhba_chimucduynhat 
ON danhba (ho, ten);

ตัวอย่างนี้สร้างดัชนีชื่อ danh_chimuc บนรายชื่อที่มีชื่อและนามสกุล และทำให้แน่ใจว่าการรวมกันของสองฟิลด์นี้ไม่ซ้ำกัน เป็นไปได้ที่จะสร้างดัชนีเฉพาะของ Clustered เพื่อให้ลำดับทางกายภาพของแถวในตารางจะถูกตัดสินโดยลำดับตรรกะของดัชนี

  CREAT E UNIQUE CLUSTERED INDEX danhba_chimucduynhat 
ON danh three (ho, ten);

ดัชนีที่สร้างขึ้นใหม่ในตัวอย่างนี้มีชื่อ danhba_chimucduynhat ประกอบด้วยฟิลด์ชื่อและนามสกุลสองฟิลด์ และยังเปลี่ยนลำดับการจัดเรียงของแถวในตารางตามนั้น

เปลี่ยนชื่อดัชนีใน SQL Server

ไวยากรณ์

  sp_rename 'tenbang.ten_chi_muc_cu', 'ten_chimuc_moi', 'INDEX'; 

ten_bang

ชื่อของตารางที่สร้างดัชนี

ten_chimuc_cu

ชื่อของดัชนีที่คุณต้องการเปลี่ยนชื่อ

ten_chimuc_moi

ชื่อใหม่สำหรับดัชนี

ตัวอย่างเช่น

  sp_rename 'danhba.danhba_chimuc', 'danhba_chimuc_ten', 'INDEX'; 

ตัวอย่างนี้เปลี่ยนชื่อดัชนีในตาราง namba จาก danhba_chimuc เป็น listba_chimuc_ten

ลบดัชนีใน SQL Server

ไวยากรณ์

  DROP INDEX tenbang.ten_chimuc; 

ten_bang

ชื่อของตารางที่สร้างดัชนี

ten_chimuc_cu

ชื่อของดัชนีที่จะลบ

ตัวอย่างเช่น

  DROP INDEX danhba.danhba_chimuc; 

ตัวอย่างนี้จะลบดัชนีชื่อ ba_chimuc