創建一個覆蓋非聚集索引以滿足給定查詢的要求。 如果索引中不存在一列,則SQL服務器將需要執行密鑰查找。爲了防止密鑰查找,創建了覆蓋索引,但是我不明白爲什麼以下是覆蓋索引,而其中一列未包括。涵蓋索引adventureworks 2008 R2 - 爲什麼不包含column WorkorderID?
數據庫:了Adventureworks 2008 R2 表:Production.WorkOrder 指標名稱:IX_WorkOrder_ProductID
查詢:
SELECT WorkOrderID,StartDate
FROM Production.WorkOrder
WHERE ProductID = 757;
IX_WorkOrder_ProductID僅列開始的ProductID 它刪除並重新創建爲索引如下:
CREATE INDEX IX_WorkOrder_ProductID
ON Production.WorkOrder (ProductID)
INCLUDE (StartDate);
執行後實際執行計劃使用索引查找(非集羣),成本爲 100%。
我的問題是:爲什麼不需要將WorkOrderID列添加到索引 IX_WorkOrder_ProductID?爲什麼它是一個沒有WorkOrderID的覆蓋索引?
明白了。非常感謝。 – 2013-05-01 21:09:58