我有一个包含大量数据的表。假设有 10GB 的行,其中包含一堆垃圾。例如,我需要选择 amount
列最高的 X 行(X 通常低于 10)。
有什么方法可以在不对整个表进行排序的情况下做到这一点吗?对如此大量的数据进行排序非常耗时,我可以一次扫描整个表并选择 X 个最高值,并让其余的保持不变。我正在使用 SQL Server。
最佳答案
在 amount
上创建索引,然后 SQL Server 可以从中选择前 10 个
,并执行书签查找以检索丢失的列。
关于sql - 选择 'highest' X 行而不排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5475024/