sql-server - 来自 MS-SQL-Server 2019 的奇怪“缺少索引”建议
解决方案
索引键中只有 1 列。这很轻。
建议索引的包含子句中几乎有 10 列。
为了提高效率,仅索引查找的列(在您的情况下为 SPTAG)并不是一个好的选择,因为数据库引擎需要访问 2 个数据结构:
- 首先读取(在索引中查找)以查找在谓词下合格的候选行
- 第二次读表找到索引没有的列
但是,如果索引获得了查询的每个子句(SELECT、JOIN/ON、WHERE、GROUP BY、HAVING、ORDER BY)所需的所有列,那么将只有一个数据结构用于提供完整的结果数据集。
优化器将两次读取的成本与扫描表等其他策略的成本进行比较。如果扫描的成本较低,则不会使用索引……因此,给定索引的推荐策略是将所有数据都包含在其中!
推荐阅读
- mongodb - 尝试安装 mongodb 时的权限
- vba - 对象的最大尺寸
- javascript - 错误事件侦听器未处理负载资源错误
- java - Apache Gaucamole:从 Angular 项目连接到 Guacd 失败
- java - 在python中通过jpype调用时重定向jar输出
- vba - 如何将 Access 中的输出追溯到产生它的 VBA 代码部分
- apache-kafka - 卡夫卡流架构
- angular - 如何在 Angular 材料表中添加一列以设置行活动/非活动,而复选框不应该受到影响
- android - 使用 GSON 从 json 数组中删除空对象
- mysql - Mysql - 如果 table1.id = table2.id > 1 则显示一行