ฉันได้พิจารณาใช้การจัดทำดัชนีการดูเพื่อเพิ่มประสิทธิภาพในการดูที่ใช้บ่อยที่สุดของเรา
อย่างไรก็ตามมุมมองที่จัดทำดัชนีไม่สนับสนุนดัชนีคลัสเตอร์ที่ไม่ซ้ำกันซึ่งไปเล็กน้อยกับความสำคัญที่กำหนดโดยส่วนที่เหลือของโครงสร้างฐานข้อมูล
ตัวอย่างเช่นที่นี่เป็นเวอร์ชันที่เรียบง่ายของตารางของเราสองสามตัว
-Groups-
Group ID GroupName
-Users-
UserKey UserName FullName GroupID
ดัชนีอยู่ใน Groups.GroupID (ไม่ทำคลัสเตอร์) และ Users.GroupID (ทำคลัสเตอร์) คีย์คลัสเตอร์ที่อยู่ใน GroupID ในตารางผู้ใช้เป็นช่วงที่ผู้ใช้จากกลุ่มที่เฉพาะเจาะจงมากที่สุดจะถูกดึง เห็นได้ชัดว่าคุณจะมีผู้ใช้หลายคนต่อกลุ่มดังนั้นดัชนีคลัสเตอร์นี้จะไม่ซ้ำกัน
สิ่งนี้ทำให้ฉันมีความไม่แน่นอนเล็กน้อยเกี่ยวกับวิธีทำตามความสำคัญนี้เมื่อจัดทำดัชนีมุมมองของฉันเช่นตัวอย่างนี้เนื่องจากฉันไม่สามารถมีดัชนีคลัสเตอร์ที่ไม่ซ้ำกันได้
ConsumableID ConsumableVariantID AllowThresholdOverwrite FullPath GroupID ManufacturerID Type ModelID
101 29 1 0.1.2.4. 4 3 3 2
ในความเป็นจริงแล้วมีเพียงค่าเดียวในมุมมองนี้ซึ่งจะเป็นค่าที่ไม่ซ้ำกันคือคอลัมน์ ConsumableID ดังนั้นฉันจึงเหลือตัวเลือกเพียงเล็กน้อยว่าจะวางดัชนีของฉันไว้ที่ใด
เหตุใด Views จึงไม่อนุญาตให้มีดัชนีที่ไม่ซ้ำกันในกลุ่มเมื่อตารางปกติทำ
(GroupID, UserID)
ได้ อย่า จำกัด ตัวเองไว้ที่คอลัมน์เดียวสำหรับกุญแจ 2 - ฉันจินตนาการถึงข้อ จำกัด สำหรับมุมมองเนื่องจากนี่เป็นวัตถุข้อมูลเพิ่มเติมที่จำเป็นต้องมีแถวที่เชื่อมโยงกับดัชนี NC ได้อย่างง่ายดาย สำหรับตารางคีย์ CI ที่ไม่ซ้ำกันจะได้รับการผนวกเข้าด้วยกัน แต่ฉันคิดว่ามันจะมีความท้าทายมากขึ้นในมุมมองที่จัดทำดัชนีเนื่องจากไม่ใช่ตารางจริง แต่ต้องสะท้อนกลับตารางจริง