sql - 任何可能的方式来避免按 desc 排序以选择前 500 条最新记录。由于排序会导致很多性能问题,
问题描述
我有一个表,有两列c1 和 c2都是整数。我必须按 desc 的顺序选择前 500 条最新记录。表有超过 5000 万条记录。
- c1是具有“按 asc 排序”的聚集索引。
- 无法删除为c1完成的聚集索引,因为它具有太多依赖项。
- 我需要按c2的降序对表格进行排序。
- 因此,当我编写一个没有“order by desc”的选择查询时,它应该按c2的降序排序。
任何可能的方法来实现这一点。
解决方案
没有办法肯定地实现这一点,因为 SQL 表是无序的行集合。任何未提及 ORDER BY 子句的排序都是偶然的,可以任意更改。
作为参考,来自SELECT - ORDER BY Clause (Transact-SQL):
除非指定了 ORDER BY 子句,否则无法保证在结果集中返回行的顺序。
推荐阅读
- ruby-on-rails - Dokku DigitalOceans droplet:远程拒绝错误...如何解决?
- angular - Bootstrap 4“数据切换”打破了角度的两种方式绑定
- excel - 计算excel中每一行的空白列中的唯一值
- imagick - 如何修复 Piwigo 中的“照片无法重新生成”错误?
- sql - 如何使此代码在 SQL Server 2016 中可重用(Union all 除外)
- c# - MVC5:同时过滤结果和分页时遇到问题
- shell - 启动容器进程导致“exec:\”/tmp/run.sh\“:权限被拒绝”:未知
- python - 如何正确设置用于为灰度图像着色的神经网络?
- python - 如何根据列表中的项目要求输入?
- drools - 我克隆了drools repo,尝试mvn安装,但它给出了未解决的父POM的错误