Ben*_*cka 5 performance sql-server clustered-index order-by
假设我有一个聚集在PrimaryKey上的表,并且在所有情况下我都希望我的结果按PrimaryKey排序,所以我总是ORDER BY PrimaryKey
在所有查询中。
这是否ORDER BY
会以任何方式影响性能,还是由于行已经按此顺序被分析器忽略了?
我使用的是 SQL Server 2005 数据库。
它几乎肯定会影响性能。
如果你只是做一个查询
Select *
From Table
Order by PrimaryKey
Run Code Online (Sandbox Code Playgroud)
它可能根本不会影响任何事情。
但请记住,这仅决定了聚集索引叶级行的顺序。如果您执行JOIN
s 或使用其他避免键查找的索引,ORDER BY
则将产生额外的工作。
如果您JOIN
在查询该表时将使用或引用的每个索引和每个表都按相同的键(在同一方向)排序,那么它可能不会影响性能。在那个非常有限的场景之外,你会看到成功。
仅ORDER BY
当结果的顺序真正重要时才使用。根据我的经验,很少需要。