任何可能的方法来避免命令desc选择前500名最新记录。由于排序会导致很多性能问题,[重复]

问题描述 投票:-1回答:1

这个问题在这里已有答案:

我有一个表有两列c1和c2都是整数。我必须通过desc选择前500名最新记录。表有超过5000万条记录。

  1. c1是具有“按asc排序”的聚簇索引。
  2. 无法删除为c1完成的聚簇索引,因为它具有太多依赖项。
  3. 我需要按c2的降序对表进行排序。
  4. 因此,当我编写一个没有“按顺序排序”的选择查询时,它应按c2的降序排序。

任何可能的方法来实现这一点。

sql sql-server indexing clustered-index non-clustered-index
1个回答
2
投票

没有办法确定地实现这一点,因为SQL表是无序的行集合。任何不提及ORDER BY子句的顺序都是偶然的,可以随意改变。

供参考,来自SELECT - ORDER BY Clause (Transact-SQL)

除非指定了ORDER BY子句,否则无法保证在结果集中返回行的顺序。

© www.soinside.com 2019 - 2024. All rights reserved.