Думаю, вы ошиблись своими предположениями об эффективности подкачки?Попробуйте взглянуть на выполнение SQL в профилировщике - он выполняет два оператора SQL - один, чтобы получить счетчик и один, чтобы выбрать топ 10. Ниже приведены результаты выполненного SQL от профилировщика -
Этот SQL получаетполучает счетчик - используется пейджером:
SELECT [GroupBy1].[A1] AS [C1]
FROM ( SELECT
COUNT(1) AS [A1]
FROM [dbo].[Customer] AS [Extent1]
)
AS [GroupBy1]
В то время как SQL используется для извлечения данных:
SELECT TOP (10)
[Extent1].[CustomerId] AS [CustomerId],
[Extent1].[FirstName] AS [FirstName],
[Extent1].[LastName] AS [LastName],
...
FROM ( SELECT [Extent1].[CustomerId] AS [CustomerId], [Extent1].[FirstName] AS [FirstName], [Extent1].[LastName] AS [LastName], ..., row_number() OVER (ORDER BY [Extent1].[Company] ASC) AS [row_number]
FROM [dbo].[Customer] AS [Extent1]
) AS [Extent1]
WHERE [Extent1].[row_number] > 20
ORDER BY [Extent1].[Company] ASC
Обратите внимание на TOP (10), row_number () над, а где ...> 20 операторов во втором sql скрипте?Это помогает уточнить?