sql server执行计划 - 嵌套循环连接

时间:2011-12-11 21:56:52

标签: sql-server sql-execution-plan

我在SQL Server上有一个非常简单的选择:

select * from person
where first_name = 'John' and last_name = 'Smith'`

在执行计划中,我有:

  • 非聚集索引搜索 - NC_First_Last_pers
  • PK上的密钥查找(Clustered)

这两个进入嵌套循环连接。

我的问题是:

为什么要加入?我认为这仅用于连接不同的表,但我这里只有1个表。

谢谢!

1 个答案:

答案 0 :(得分:4)

在索引中,您拥有索引中包含的列的数据以及聚簇键。您正在使用*查询表,这意味着您必须查找所有列值,并将它们与群集密钥一起存储。

查询使用名称上的索引查找匹配的所有行,然后使用聚簇键查找所需的数据。