尽管盲目地创建建议的缺失索引不太理想,有没有办法从 SQL Server Management Studio 的“执行计划”选项卡中复制和粘贴建议的缺失索引?
您会在鼠标悬停在其上时获得工具提示,但似乎没有右键单击菜单复制它们。多年来,我只是输入了我需要的任何内容,但很好奇是否可以从选项卡中轻松获取基本表单。
使用 SSMS 2017
尽管盲目地创建建议的缺失索引不太理想,有没有办法从 SQL Server Management Studio 的“执行计划”选项卡中复制和粘贴建议的缺失索引?
您会在鼠标悬停在其上时获得工具提示,但似乎没有右键单击菜单复制它们。多年来,我只是输入了我需要的任何内容,但很好奇是否可以从选项卡中轻松获取基本表单。
使用 SSMS 2017
您可以右键单击显示建议索引的绿色文本,选择“缺少索引详细信息”,这将在 SSMS 中打开一个带有索引创建脚本的新选项卡。
您可以使用右键单击功能,但它是有限的。不仅因为,就像您提到的那样,缺少的索引请求有点蹩脚,还因为它只会向您显示一个,而它向您显示的那个可能不是最好的。
接受这个查询:
当我运行它并查看查询计划时,列出了一个缺失的索引请求,估计影响约为 16%。
但如果我进入 XML,还有另一个估计影响更大的请求:
如果要查看计划中所有缺失的索引请求,则需要脱离 SSMS。
SentryOne Plan Explorer等免费工具和我贡献的一个开源脚本sp_BlitzCache将列出 XML 中所有缺失的索引请求。
在 sp_BlitzCache 中,缺少的索引 XML 列是可单击的:
EXEC dbo.sp_BlitzCache @DatabaseName = 'StackOverflow2010'
并会显示如下信息:
所以你可能不想依赖 SSMS 和右键单击。它可能会向您隐藏很多信息。