gpt4 book ai didi

SQL 非聚集索引。到 "include"或不到 "include"

转载 作者:行者123 更新时间:2023-12-04 15:47:17 24 4
gpt4 key购买 nike

我最近运行了一个执行计划,SSMS 建议我向表中添加一个非聚集索引。

起初我通过 DB Diagram gui 添加了索引。它给我的索引如下所示:

CREATE NONCLUSTERED INDEX [IX_MyTable] ON [dbo].[MyTable] 
(
[ID_ForeignKey] ASC,
[ID] ASC
)

那不是它要寻找的索引。接下来我通过在对象资源管理器中右键单击添加了一个索引。我将它添加到 ID_Foreign 键表中,并在“包含的列”页面上添加了 ID 列。它给我的索引是这样的:
CREATE NONCLUSTERED INDEX [IX_MyTable] ON [dbo].[MyTable] 
(
[ID_ForeignKey] ASC
)
INCLUDE ( [ID])

这就是它正在寻找的索引。

这些索引有什么区别?

最佳答案

第一个在两列上创建一个索引,按第一列排序,然后是第二列。

第二个索引只对第一列进行排序,但也携带来自第二列的数据。这避免了需要返回表来获取该列的数据。

第一个索引将需要更多的插入和更新计算,因此如果您不需要索引第二列,请使用索引的第二个版本。两者都将提供您需要的数据,而无需在表中查找。

关于SQL 非聚集索引。到 "include"或不到 "include",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4543028/

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