Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Quelle est une méthode efficace de pagination à travers de très grands ensembles de résultats dans SQL Server 2005 ?

La technique row_number() devrait être rapide. J'ai vu de bons résultats pour 100 000 lignes.

Utilisez-vous row_number() similaire à ce qui suit :

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

...et avez-vous un index de couverture pour la colonne_liste et/ou un index sur la colonne 'OrderByColumnName' ?