1
我發現如果我用小於或大於運算符查詢表,sql服務器索引無法正常工作。小於或大於sql server中索引的運算符問題
說我有一個簡單的表(TestTable的)僅具有2列是這樣的:
Column Name, column type, primary Key, index
iID, int, yes, cluster index
iCount, int, no, non-cluster index
name, nvarchar(255), no, no index
現在,我通過這個查詢表:
SELECT * FROM TestTable的WHERE ICOUNT = 10 。
非常好,Sql服務器將使用列iCount的非集羣索引來檢索結果。
但是,如果我通過這個查詢表:
SELECT * FROM TestTable的WHERE ICOUNT < 10,
SQL Server將做轉移到集羣指數爲IID一個索引掃描檢索結果。
我想知道爲什麼sql server不能使用正確的索引,當我在查詢中使用少於或大於運算符。
考慮將聚簇索引按照該順序**更改爲化合物'(iCount,iID)** **。 – onedaywhen
或者,他可以將'name'添加爲iCount的非聚集索引中的包含列,這不需要改變主鍵的性質。 – hatchet