我在SQL Server上有一个非常简单的选择:
select * from person
where first_name = 'John' and last_name = 'Smith'`
在执行计划中,我有:
这两个进入嵌套循环连接。
我的问题是:
为什么要加入?我认为这仅用于连接不同的表,但我这里只有1个表。
谢谢!
答案 0 :(得分:4)
在索引中,您拥有索引中包含的列的数据以及聚簇键。您正在使用*
查询表,这意味着您必须查找所有列值,并将它们与群集密钥一起存储。
查询使用名称上的索引查找匹配的所有行,然后使用聚簇键查找所需的数据。