Какой самый быстрый способ выбора диапазона строк, скажем, от 4.200.000 до 4.200.050, с использованием SQL 2005? Предположим, у меня есть 10 миллионов строк.
В своих собственных проектах я использую следующий подход, но я не уверен, что это лучший метод
select * from
(
select
Column1, Column2, Column3
RowNumber = row_number() over (order by ID asc)
from
tblLogs
where
Column4 = @Column4 and Column5 = @Column5
) as tempTable
where tempTable.RowNumber >= @StartIndex and tempTable.RowNumber <= @EndIndex
С приведенным выше кодом мне хочется сказать, что tempTable будет большой таблицей с одним столбцом, содержащим все мои идентификаторы.
Есть ли что-нибудь быстрее?
Не думайте, что можно обойтись, используя столбец ID, это не сработает, я удаляю строки из этой таблицы, поэтому мои идентификаторы не являются последовательными числами.