SELECT [BusinessEntityID] , LastName , MiddleName , FirstName
FROM Person.Person
WHERE LastName LIKE '%old%'
[SQL] 具有內含資料行的索引 筆記內的說明
Nonclustered index 是由 Index Key、included column 和 Clustered Key 組成,利用 Nonclustered index 搜尋資料,會先利用 Index Key 來搜尋,假如利用 Index Key 就搜尋完全部資料,此情況稱為 Covering Index(覆蓋索引);相反地,無法在 Index Key 上找到全部資料,就會進一步利用 Clustered Key 進入 Clustered Index 內去搜尋所需要資料,此行為稱為索引鍵查閱(Key Lookup),2005 SP2 之前稱為書籤查詢(Bookmark Lookup),會增加鎖定和執行時間
該說明只強調 nonclustered index,並沒有提到一定要從 Index Seek 出發,以往看見的都是 Index Seek、Nested Loop、Key Lookup 這三個 operator 組合,第一次看見是 Index Scan 出發
第一眼看見該執行計畫,直覺為什麼不是跑 Clustered Index Scan 阿
- 參考資料
- Key Lookup
沒有留言:
張貼留言