Я пытаюсь использовать разбиение на страницы, и я получил идеальную ссылку в SO
SELECT *
FROM ( SELECT ROW_NUMBER() OVER ( ORDER BY OrderDate ) AS RowNum, *
FROM Orders
WHERE OrderDate >= '1980-01-01'
) AS RowConstrainedResult
WHERE RowNum >= 1
AND RowNum < 20
ORDER BY RowNum
Точный же запрос пытается использовать с дополнительным объединением нескольких таблиц в моем внутреннем запросе.
Получается несколько проблем с производительностью в следующих сценариях
WHERE RowNum >= 1
AND RowNum < 20 ==>executes faster approx 2 sec
WHERE RowNum >= 1000
AND RowNum < 1010 ==> more time approx 10 sec
WHERE RowNum >= 30000
AND RowNum < 30010 ==> more time approx 17 sec
Каждый раз я выбираю 10 строк, но огромную разницу во времени. Любая идея или предложения?
Я выбрал этот подход, так как динамически связываю столбцы и формирую Query. Есть ли другой лучший способ организовать Pagination Query в SQl Server 2008.
Есть ли способ повысить производительность запроса?
Спасибо