Sql-Server
什麼是非聚集索引掃描
我知道什麼是表掃描、聚集索引掃描和索引搜尋,但我的Google技能讓我無法找到非聚集索引掃描的精確解釋。為什麼以及何時查詢使用非聚集索引掃描?
謝謝你。
在這種情況下可以選擇非聚集索引掃描:
- 優化器確定掃描所有行比執行搜尋/範圍掃描更便宜
- 非聚集索引比聚集索引“更瘦”
- 非聚集的仍然覆蓋查詢所需的列(或者它覆蓋了足夠多的列並且查找剩餘部分仍然比聚集索引掃描便宜)
顯然,如果你有一個堆(沒有聚集索引)並且 3. 仍然是真的,它也可能發生。
這並不意味著是一個詳盡的列表 - 還有其他情況可以選擇非聚集索引掃描,但這可能是最常見的。