2011-12-11 59 views
2

我有一個非常簡單的選擇SQL Server上:SQL Server的執行計劃 - 嵌套循環連接

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

在執行計劃,我有:

  • 非聚集索引查找 - NC_First_Last_pers
  • 關鍵lookup(Clustered)on PK

而這兩個進入嵌套循環連接。我的問題是:

爲什麼有加入?我認爲這隻用於連接不同的表格,但我在這裏只有一個表格。

謝謝!

回答

4

在索引中,您具有索引中包含的列的數據以及聚簇鍵。您正在查詢*表,這意味着您必須查找所有列值並將它們與聚簇密鑰一起存儲。

查詢使用名稱上的索引查找所有匹配的行,然後使用聚簇鍵查找所需的數據。