微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

来自 MS-SQL-Server 2019 的奇怪“缺少索引”建议

如何解决来自 MS-SQL-Server 2019 的奇怪“缺少索引”建议

SSMS 执行计划给出错误消息“缺少索引”并建议我创建一个由 10 个字段组成的长索引:

enter image description here

创建这么长的索引真的有意义吗?

索引建议还包含所有数值字段。 我从不通过数字字段访问表格。

解决方法

索引键中只有 1 列。很轻。

建议索引的 include 子句中几乎有 10 列。

为了提高效率,仅索引查找的列(在您的情况下为 SPTAG)并不是系统性的好选择,因为数据库引擎需要访问 2 个数据结构:

  1. 首先读取(在索引中查找)以查找符合谓词条件的候选行
  2. 第二次读表,找出索引没有的列

但是如果索引获得了查询的每个子句(SELECT、JOIN/ON、WHERE、GROUP BY、HAVING、ORDER BY)所需的所有列,那么将只有一个数据结构用于提供完整的结果数据集。

优化器将两次读取的成本与其他策略(如扫描表)的成本进行比较。如果扫描成本较低,则不会使用索引... 所以推荐给定索引的策略是把所有数据都放在里面!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。