【问题标题】:Using INCLUDE in Indexes在索引中使用 INCLUDE
【发布时间】:2017-09-18 08:56:26
【问题描述】:

我有一个关于索引的查询,但找不到确认(可能是由于措辞不当)。

我有一个表 T,其中包含 A、B 和 C 列。如果我要在 A 列上创建一个索引,包括 B 列,我会明白这对于过滤/组/的查询来说是理想的按 A 排序,然后选择 B。

但是,对于其他列(例如选择列 C),它是否像没有包含的列 A 上的常规索引一样工作?

不胜感激。

谢谢。

【问题讨论】:

    标签: sql-server indexing include


    【解决方案1】:

    您的问题指出了涵盖查询和未涵盖查询之间的区别。这个问题有很多问题 - 我建议阅读 this 文章。查询执行计划是在考虑几个条件后选择的,因此您的问题没有直接的答案。

    【讨论】:

    • 非常有趣的文章。但我仍然不确定这对这种情况意味着什么。如果不读取包含索引的查找键,读取性能是否等同于不包含索引的读取性能?
    • 您的意思是如果包含的列会减慢索引查找速度,即使您不使用它们?所有索引都按页面组织,因此如果在非聚集索引中包含大量列,则可以在一页中容纳更少的键。这意味着您需要阅读更多页面,因此会对性能产生负面影响(当然只有当 sql 决定使用索引时)。
    猜你喜欢
    • 2010-11-21
    • 2014-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多