慕標5832272
2019-10-29 10:55:53
您能否解釋Microsoft SQL Server中Covering Index和Covered Queries的概念及其之間的關系?
3 回答

汪汪一只貓
TA貢獻1898條經(jīng)驗 獲得超8個贊
如果查詢列表中請求的所有列select
都在index中可用,則查詢引擎不必再次查找表,這可以顯著提高查詢的性能。由于所有請求的列在索引中都可用,因此索引涵蓋了查詢。因此,該查詢稱為覆蓋查詢,而索引是覆蓋索引。
如果選擇列表中的列來自同一表,則聚集索引始終可以覆蓋查詢。

長風秋雁
TA貢獻1757條經(jīng)驗 獲得超7個贊
覆蓋指數(shù)是一個Non-Clustered
指數(shù)。聚簇索引和非聚簇索引都使用B樹數(shù)據(jù)結構來改進數(shù)據(jù)搜索,不同之處在于,在聚簇索引的葉子中,整個記錄(即行)實際上都存儲在此處!非聚集索引的大小寫。以下示例對此進行了說明:
示例:我有一個包含三列的表:ID,F(xiàn)name和Lname。
但是,對于非聚集索引,有兩種可能性:表已經(jīng)具有聚集索引,或者沒有:
正如兩個圖所示,這樣的非聚集索引不能提供良好的性能,因為它們無法僅從B樹中找到喜歡的值(即Lname)。相反,他們必須執(zhí)行額外的“查找”步驟(查找“密鑰”或“ RID”)以查找Lname的值。并且,這是覆蓋索引進入屏幕的地方。在這里,ID上的非聚集索引覆蓋了B樹的葉子中緊挨著它的Lname的值,并且不再需要任何類型的查找。
- 3 回答
- 0 關注
- 924 瀏覽
添加回答
舉報
0/150
提交
取消