SQL Server - Acelerar a contagem em grandes tabelas

Eu tenho uma mesa perto de30 milhões registros. Apenas várias colunas. Uma da coluna'Born' não tem mais do que30 valores diferentes e há um índice definido nele. Eu preciso ser capaz de filtrar essa coluna e paginar os resultados com eficiência.

Por enquanto eu tenho (exemplo se o ano que estou procurando é '1970' - é um parâmetro no meu procedimento armazenado):

WITH PersonSubset as
(
    SELECT *, ROW_NUMBER() OVER (ORDER BY Born asc) AS Row
    FROM Person WITH (INDEX(IX_Person_Born)) 
    WHERE Born = '1970'
)
SELECT *, (SELECT count(*) FROM PersonSubset) AS TotalPeople
FROM PersonSubset
WHERE Row BETWEEN 0 AND 30

Cada consulta desse tipo (somenteBorn parâmetro utilizado) retorna pouco mais de 1 milhão de resultados. Percebi que a maior sobrecarga está na contagem usada para retornar o resultado total. Se eu remover(SELECT count(*) FROM PersonSubset) AS TotalPeople da cláusula select a coisa toda acelera muito.

Existe uma maneira de acelerar a contagem nessa consulta. O que me interessa é ter os resultados paginados retornados e a contagem total.

questionAnswers(4)

yourAnswerToTheQuestion