我正在通过 sp_executesql 分析在我们系统内运行的查询。我能够在生产数据库上执行查询并包括实际执行计划。在执行计划结果窗口中,建议使用简单的非聚集索引。
根据建议,我添加了索引。但是,当我重新运行相同的查询时,它会继续建议相同的索引。为什么会认为索引不存在呢?
我正在通过 sp_executesql 分析在我们系统内运行的查询。我能够在生产数据库上执行查询并包括实际执行计划。在执行计划结果窗口中,建议使用简单的非聚集索引。
根据建议,我添加了索引。但是,当我重新运行相同的查询时,它会继续建议相同的索引。为什么会认为索引不存在呢?
我见过同样的行为;检查执行计划并确保它正在使用新索引,然后忽略该建议。
如果您错过了 INCLUDEd 列或某些方向 (ASC/DESC) 不同,建议的索引可能与您的实际索引不同
我之前在 SO 上回答过类似的问题