2016-08-03 50 views
0

我正在尝试学习如何检测SQL Server 2014 Express(这是一个自学项目)中缺少的索引。我正在使用AdventureWorks 2012和在线教程。下面是我使用的代码:缺失索引检测SQL Server 2014

SELECT 
    FirstName, 
    MiddleName, 
    LastName 
FROM Person.Person 
WHERE LastName = 'Harrson' 
AND FirstName = 'Jesse'; 

查询返回一个空表,我好有(再次声明,我试着学习如何使用优化器)。

本教程指出我应该右键单击该操作,并且会出现一个带有缺失索引选项的软件。当我右键单击我看到的唯一菜单是下面的一个。

Execution Plan Screenshot

+0

没有缺失的索引,它使用已经存在的聚集索引。如果您要删除该索引,那么它可能会开始告诉您,创建一个索引是个好主意。 –

+0

你可以请粘贴表和索引的架构 – TheGameiswar

回答

1

的缺失索引的信息并不总是出现(这将是绿色文本)。对于您的查询,聚集索引就好了,SQL Server认为没有问题。您可以尝试另外两件事:

  • 使您的查询更加复杂,并在where子句中添加一些连接和过滤器。这可能会产生一个索引建议。
  • 将表中的当前索引编写出来,保存脚本,然后删除person.person表中的所有索引,最后重新运行查询。有可能会产生堆的索引建议。一旦你玩完了,你可以重新运行你的索引脚本来放回索引。