在SQL Server的非聚集索引中可以包含很多列吗?

时间:2018-10-17 12:18:43

标签: sql-server tsql indexing

给出以下示例:

CREATE NONCLUSTERED INDEX IX_Address_PostalCode  
ON Person.Address (PostalCode)  
INCLUDE (AddressLine1);  
GO  

如果我在INCLUDE列表中包括更多列,例如:

CREATE NONCLUSTERED INDEX IX_Address_PostalCode  
ON Person.Address (PostalCode)  
INCLUDE (AddressLine1, AddressLine2, City, StateProvinceID, Latitude, Longitute, Zip, Country, etc... );  
GO   

这需要更多的磁盘空间吗?

或者换句话说:INCLUDE列表中包含的数据在索引的叶节点上是否重复?

1 个答案:

答案 0 :(得分:3)

是的

而这正是包含的原因:牺牲一些空间,但在需要包含的列时进行(某些)查询而不必进行键查找,而是从索引本身获取它们。