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