查找导致缺少索引 DMV 的查询

Sta*_*ser 11 index sql-server-2008 sql-server sql-server-2008-r2 dmv

如何找到导致建议创建特定索引的缺失索引 DMV 的查询?

谢谢你。

spa*_*dba 12

简短的回答:你不能 100% 准确。

长答案:您可以查询计划缓存以识别缺少索引警告的计划,并将结果与​​您在 sys.dm_db_missing_index_* DMV 中找到的结果进行比较。这是一个可用于查询计划缓存的脚本。如果计划没有被缓存或因任何原因被推出缓存,您将找不到任何匹配项,因此我们回到简短的回答。

为了 100% 确定,您必须跟踪工作负载并捕获缺少索引的计划。它不是轻量级的,也不是微不足道的。这是一个脚本来做到这一点。只需稍加努力,就可以将其移植到扩展事件。