Saya mengalami beberapa masalah kinerja menggunakan metode COUNT() OVER(). (Saya tidak yakin apakah itu server karena butuh 40 detik untuk mengembalikan 10 catatan dan kemudian tidak ada masalah.) Teknik ini bekerja dalam semua kondisi tanpa harus menggunakan COUNT( ) OVER() dan melakukan hal yang sama:
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