Ik ben enkele prestatieproblemen tegengekomen bij het gebruik van de COUNT() OVER()-methode. (Ik weet niet zeker of het de server was, aangezien het 40 seconden duurde om 10 records te retourneren en later geen problemen had.) Deze techniek werkte onder alle omstandigheden zonder COUNT( te gebruiken) ) OVER() en bereikt hetzelfde:
DECLARE
@PageSize INT = 10,
@PageNum INT = 1;
WITH TempResult AS(
SELECT ID, Name
FROM Table
), TempCount AS (
SELECT COUNT(*) AS MaxRows FROM TempResult
)
SELECT *
FROM TempResult, TempCount
ORDER BY TempResult.Name
OFFSET (@PageNum-1)*@PageSize ROWS
FETCH NEXT @PageSize ROWS ONLY