Sql-Server
集群鍵上的 ORDER BY 會影響性能嗎?
假設我有一個聚集在PrimaryKey上的表,並且在所有情況下我都希望我的結果按PrimaryKey排序,所以我還總是
ORDER BY PrimaryKey
在所有查詢中。這是否
ORDER BY
會以任何方式影響性能,還是因為行已經按此順序排列而被分析器忽略?我正在使用 SQL Server 2005 數據庫。
它幾乎肯定會影響性能。
如果你只是做一個查詢
Select * From Table Order by PrimaryKey
它可能根本不會影響任何事情。
但請記住,這僅確定聚集索引葉級別的行順序。如果您這樣做
JOIN
,或使用其他避免鍵查找的索引,ORDER BY
則將產生額外的工作。如果您
JOIN
在查詢此表時將使用或引用的每個索引和每個表都按相同的鍵(在相同的方向)排序,那麼它可能不會影響性能。在那個非常有限的場景之外,你會看到一個成功。僅
ORDER BY
在結果的順序確實很重要時使用。根據我的經驗,它很少需要。