执行计划每次都给出不同索引的提示

Execution plan gives hint for different Indexes every time

SQL 服务器不断更改选项以在 table.

上构建非聚集索引

第 1 次,SQL 服务器发出警告,要求在 18 列上建立索引以提高 55% 的性能。

我构建了这些索引,然后 SQL 运行 构建了 16 分钟 在执行结束时,它给出了新的警告,在相同的 table 上构建不同的索引,以提高 70% 的性能。

但是,当我 运行 SQL 实施新索引后,它 运行 超过 30 分钟。

对于 table 名称和包含选项

之后应立即为非群集包含哪些属性,是否有任何建议

您在查询计划中看到的是缺失索引功能。此功能 notoriously bad 用于识别有用的性能改进。我已经学会忽略它,除非计算出的改进超过 95%。即便如此,这些建议通常已经被其他索引充分涵盖。

我建议您删除刚刚创建的所有索引。在那之后,请 post https://www.brentozar.com/pastetheplan 的计划,link 它在一个新问题中。从计划中可能更清楚真正的问题是什么。