我的一位同事认为,在SQL Server 2008中向表中添加索引时,PK的索引也会添加到该索引中。因此,如果您使用更宽的主键,那么该键也将包含在新索引中,大大增加了上面使用的磁盘空间,超出了已经为PK索引支付的惩罚。我之前没有听说过,到目前为止,我的搜索空白了。
希望有人可以在相关文档上指出我确认或否认这一点。请?
答案 0 :(得分:27)
您的同事正在将“主键”与“聚簇索引键”混淆(可能是因为默认情况下,在堆上创建的PK而不指定nonclustered
关键字将成为表的聚簇索引。)
It is true在具有聚簇索引的表上,聚簇索引键的值将作为包含列添加到所有非聚簇索引中,以充当行定位符。 (尽管如果列已经是非聚集索引定义的一部分,则不会两次添加列。)
理想的聚簇索引键是