【发布时间】:2019-03-22 02:58:56
【问题描述】:
举个例子:
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 列表中包含的数据是否在索引的叶节点上重复?
【问题讨论】:
-
非聚集索引中的所有内容都是重复数据,无论是在键中还是在包含的列中。这样的索引会有很大的开销。
-
是的。您可能可以在这里找到对您问题的更深入的答案:stackoverflow.com/questions/41791413/…
-
在规模的极端,包括索引中的每一列实际上意味着您将表存储两次,其中行的顺序不同。
标签: sql-server tsql indexing