ページング効率に関する仮定に誤った方向に向けられている可能性があると思いますか?プロファイラーで実行中のSQLを見てみてください-2つのSQLステートメントを実行します-1つはカウントを取得し、もう1つはトップ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()、および2番目のSQLスクリプトの...>20ステートメントに注意してください。それは明確にするのに役立ちますか?