Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Was ist eine effiziente Methode zum Paging durch sehr große Resultsets in SQL Server 2005?

Die row_number()-Technik sollte schnell sein. Ich habe gute Ergebnisse für 100.000 Zeilen gesehen.

Verwenden Sie row_number() ähnlich dem Folgenden:

SELECT column_list
FROM
   (SELECT column_list
         ROW_NUMBER() OVER(ORDER BY OrderByColumnName) as RowNum
    FROM MyTable m
   ) as DerivedTableName
WHERE RowNum BETWEEN @startRowIndex AND (@startRowIndex + @maximumRows) - 1

...und haben Sie einen abdeckenden Index für die column_list und/oder einen Index für die Spalte 'OrderByColumnName'?