SELECT *
の使用は避けます 。すべての列であっても、実際に必要な列を指定します。
SQL Server 2005+
SELECT col1, col2
FROM (
SELECT col1, col2, ROW_NUMBER() OVER (ORDER BY ID) AS RowNum
FROM MyTable
) AS MyDerivedTable
WHERE MyDerivedTable.RowNum BETWEEN @startRow AND @endRow
SQL Server 2000
SQLServer2000の大規模な結果セットを効率的にページングする
大規模な結果セットをページングするためのより効率的な方法