2010-02-24 25 views
0

當時掃描通過SQL2005數據庫,看到下面的兩個索引表:SQL2005指標

**PK_CLUSTERED_INDEX** 
USER_ID 
COMPANY_ID 
DEPARTMENT_ID 

**NON-unique_NON-clustered_INDEX** 
USER_ID 
COMPANY_ID 

我最初的想法是,刪除最後一個索引,因爲PK_CLUSTERED_INDEX已經包含這些列,正確的順序和排序。最後一個指數是否提供任何收益?

回答

0

如果通過User_ID或User_ID和Company_ID列進行搜索,則兩個索引都可以實現該目標。 但是,如果除了這兩個字段外還要查詢Department_Id,那麼只有PK索引纔是理想的。

如果查詢在User_ID和Company_ID上過濾,並且需要返回其他數據列,那麼PK索引仍然是最好的,因爲它擁有所有需要處理的數據。而非聚集索引不那麼可能需要一個密鑰查找來拉出額外的字段,這不是很有效。

它對我來說看起來多餘,所以我一定會考慮將其刪除。

要查看某個索引是否真的被使用/瞭解使用級別,可以運行其中的各種索引使用統計腳本之一。一個很好的例子是here

0

在這種情況下,刪除索引,因爲它是不唯一的,我敢打賭優化從未撞擊它,第一個指標是比較獨特的,找到一個匹配後,並不涉及行查找。

第一個人的狀態更好,你不會因爲丟掉第二個而丟失任何東西。

0

我會丟棄NON-unique_NON-clustered_INDEX索引,它是多餘的,不需要。