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
...और क्या आपके पास 'OrderByColumnName' कॉलम पर कॉलम_लिस्ट और/या इंडेक्स के लिए एक कवरिंग इंडेक्स है?