选择"最高"的X行而不进行排序

not*_*row 2 sql t-sql sql-server query-optimization

我有一张包含大量数据的表格.让我们说10GB的线条,包含一堆垃圾.我需要选择具有最高amount列的X行(X通常低于10).

有没有办法怎么做而不整理整个表?对这些数据进行排序是非常耗时的,我可以通过整个表格进行一次扫描并选择X最高值,然后保持其余部分不变.我正在使用SQL Server.

Mar*_*ith 5

amount然后在SQL Server 上创建索引可以从中选择top 10并执行书签查找以检索缺少的列.