我在5个键(列)上有一个聚集索引。我在2列上有一个未聚集的索引。因为我在一次运行中插入了2-3百万行,所以我将2列非聚集索引更改为聚集索引,并将5列聚集索引更改为5列未聚集索引。我的问题。
clustered)时,我不需要正确的include (任何列),因为这是聚集的吗?发布于 2013-06-08 21:28:16
除非它是一个链接表,否则通常在1列上有聚集索引。一般的建议是为聚集索引列选择最小的类型(当然,这符合您的要求)。多列不仅增加了大小(每个非聚集索引存储的聚集索引值包含聚集索引!),而且大大增加了外部碎片的可能性,甚至降低了inserts的性能。因此,我对你们的问题的回答。
Update我意识到(感谢Aaron 指出了这一点),我在包含聚集索引到非聚集索引方面做了相当含糊的声明。要做到绝对正确,每个非聚集索引都包括指向行的行定位器。当表被聚集时,行定位器是聚集索引键。关于聚集索引的更多信息:[1](https://learn.microsoft.com/en-us/previous-versions/sql/sql-server-2008-r2/ms190639(v=sql.105%29),[2] )。
https://stackoverflow.com/questions/17003779
复制相似问题