我在 SQL Server 上有一个非常简单的选择:
select * from person
where first_name = 'John' and last_name = 'Smith'`
在执行计划中我有:
- 非聚集索引查找 - NC_First_Last_pers
- PK 上的 key 查找(集群)
这两个进入嵌套循环连接。
我的问题是:
为什么会有连接?我以为这仅用于连接不同的表,但我这里只有 1 个表。
谢谢!
最佳答案
在索引中,您拥有索引中包含的列的数据以及聚集键。您正在使用 *
查询表,这意味着您必须查找所有列值,并且这些值与聚集键存储在一起。
查询使用名称上的索引来查找所有匹配的行,然后使用聚集键来查找所需的数据。
关于sql-server - sql server执行计划-嵌套循环连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8467825/