gpt4 book ai didi

sql-server-2008 - 为什么 SQL Server 2008 建议我将主键列作为索引中的包含列

转载 作者:行者123 更新时间:2023-12-05 00:42:02 24 4
gpt4 key购买 nike

SQL Server 2008 告诉我在包含列字段的索引中包含主键。我认为 PK 会自动与所有索引一起返回?

最佳答案

不 - 不是主键 - 聚类 key 是。

默认情况下,这在 SQL Server 中是相同的 - 但并非必须如此。很可能在此表中,PK 与聚类键不同。在这种情况下,索引将不知道 PK。

主键是一种逻辑结构,用于唯一且清楚地标识表中的每一行。您将其用于 FK 约束等。

另一方面,聚类键是物理索引——它是“街道地址”或存储实际物理数据的页码。因此,它包含在同一个表的每个非聚集索引中 - 一旦您在非聚集索引中找到条目,它就会用于查找实际数据行。

更新:好的,所以我忍不住向“索引女王”Kimberly Tripp 询问她对这个话题的看法——这是她的回答:

If the PK is in fact the CL key then you’re right… it will automagically be in there. As for “where” he’s being told – I’m not sure (DMVs, DTA, somewhere???). Regardless, I’m sure that whatever tool he’s using is just going by what’s needed for the query. Meaning, the tool just didn’t even look to see if it was the CL key… adding it explicitly doesn’t add it twice so it’s not really a big deal at all.



这有帮助吗?

关于sql-server-2008 - 为什么 SQL Server 2008 建议我将主键列作为索引中的包含列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2443861/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com