Tom*_*Tom 5 sql-server indexing composite-index covering-index
SQL Server 2005包括"覆盖索引"功能,该功能允许我们选择多个非密钥列包含在现有的非聚簇索引中.
例如,我有以下列:
EmployeeID, DepartmentID, DesignationID, BranchID
Run Code Online (Sandbox Code Playgroud)
以下是两种情况:
EmployeeID是聚簇索引和剩余的列主键(DepartmentID,DesignationID,
BranchID)被作为非聚集索引(复合索引).
EmployeeID是聚簇索引的主键和DepartmentID是与非聚集索引
DesignationID,BranchID属于"包括列"非聚集的索引.
上面两个有什么区别?如果两者都是相同的新引入"覆盖指数"概念?
不同之处在于,如果第一个索引中有两行具有相同的 DepartmentID,则它们将根据 DesignationID 和 BranchID 的值进行排序。在第二种情况下,它们不会相对于彼此排序,并且可以以任何顺序出现在索引中。
就这对您的应用程序意味着什么而言: