Sql-Server

集群鍵上的 ORDER BY 會影響性能嗎?

  • May 6, 2021

假設我有一個聚集在PrimaryKey上的表,並且在所有情況下我都希望我的結果按PrimaryKey排序,所以我還總是ORDER BY PrimaryKey在所有查詢中。

這是否ORDER BY會以任何方式影響性能,還是因為行已經按此順序排列而被分析器忽略?

我正在使用 SQL Server 2005 數據庫。

它幾乎肯定會影響性能。

如果你只是做一個查詢

Select *
From Table
Order by PrimaryKey

它可能根本不會影響任何事情。

但請記住,這僅確定聚集索引葉級別的行順序。如果您這樣做JOIN,或使用其他避免鍵查找的索引,ORDER BY則將產生額外的工作。

如果您JOIN在查詢此表時將使用或引用的每個索引和每個表都按相同的鍵(在相同的方向)排序,那麼它可能不會影響性能。在那個非常有限的場景之外,你會看到一個成功。

ORDER BY在結果的順序確實很重要時使用。根據我的經驗,它很少需要。

引用自:https://dba.stackexchange.com/questions/10396