มีกฎใด ๆ ที่ยากและรวดเร็วในการตัดสินใจว่าควรจะใส่คอลัมน์ใดและเรียงตามลำดับในรวมในดัชนีที่ไม่ทำคลัสเตอร์ ฉันเพิ่งอ่านบทความนี้https://stackoverflow.com/questions/1307990/why-use-the-include-clause-when-creating-an-index และฉันพบว่าสำหรับแบบสอบถามต่อไปนี้:
SELECT EmployeeID, DepartmentID, LastName
FROM Employee
WHERE DepartmentID = 5
โปสเตอร์แนะนำให้สร้างดัชนีแบบนี้:
CREATE NONCLUSTERED INDEX NC_EmpDep
ON Employee(EmployeeID, DepartmentID)
INCLUDE (Lastname)
ที่นี่คำถามของฉันมาทำไมเราไม่สามารถสร้างดัชนีเช่นนี้
CREATE NONCLUSTERED INDEX NC_EmpDep
ON Employee( EmployeeID, DepartmentID, LastName)
หรือ
CREATE NONCLUSTERED INDEX NC_EmpDep
ON Employee( EmployeeID, LastName)
INCLUDE (DepartmentID)
และสิ่งใดที่ทำให้ผู้โพสต์ตัดสินใจที่จะเก็บคอลัมน์นามสกุลไว้ด้วย ทำไมไม่คอลัมน์อื่น ๆ และวิธีการตัดสินใจในลำดับที่เราควรเก็บคอลัมน์ที่มี?