我有一個表,其中的列isprocessed位爲空。我在這一列上創建了一個索引(非聚簇)。在應用索引查詢之前TSQL-兩個查詢之間有什麼區別
**`SELECT top 5000 * From Request Where IsProcessed Is Null`**
花了30到40秒。請記住,這是超過1000萬行的非常巨大的表格。 現在,在isprocessed列上創建索引後,相同的查詢未顯示性能提升。
我嘗試另一個查詢 **
;With TopN As(SELECT Top 5000 * from Request Order By IsProcessed)
SELECT * From TopN Where IsProcessed Is Null
** 現在這個查詢suprizingley使輸出小於2秒 我不知道爲什麼會出現在兩個查詢任何perforamnce差異。還有什麼是空位列上的索引行爲
作爲@Thomas注意,這2個查詢不一定會返回相同的行數,甚至相同的行... – 2010-10-20 07:12:01