Всем привет, я использую пользовательское разбиение на страницы и получаю данные с этим запросом.
DECLARE @pageIndex INT = 0;
DECLARE @pageSize INT = 10;
WITH foo AS (
SELECT ROW_NUMBER() OVER (ORDER BY test ASC) as rownumber, test, col
FROM TestDB.dbo.test
)
SELECT test, col FROM foo
WHERE rownumber BETWEEN (@pageIndex * @pageSize) + 1 AND (@pageIndex * @pageSize) + @pageSize
Он работает как надо, но я должен учитывать производительность, вот в чем вопрос.
Какой способ лучше для производительности SQL Server?
Выбор целых данных в таблице, а затем пейджинг в asp.net, php и т. Д. ИЛИ выбор данных с помощью метода, который я описал выше.
Я немного запутался, потому что описанный выше метод заключается в выборе целых данных и присвоении каждой строки номера строки, а затем в выборе строк, номер строки которых находится между X и Y.