Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Какъв е ефективен метод за страниране през много големи набори от резултати в SQL Server 2005?

Техниката row_number() трябва да е бърза. Виждал съм добри резултати за 100 000 реда.

Използвате ли row_number() подобно на следното:

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

...и имате ли покриващ индекс за column_list и/или индекс за колоната „OrderByColumnName“?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как мога да проверя дали съществува ограничение на SQL Server?

  2. Трябва да се декларира скаларната променлива @ID за вмъкнат параметър

  3. Как да валидирам географски многоъгълник в SQL сървър 2008?

  4. Използване на PIVOT в SQL Server 2008

  5. SQL Изберете стойности в скоби