マップ上のプロット ポイントとして使用される 10000 のレコードを返すクエリがあります。負荷を軽減し、アプリの速度を上げるために、基本的に詳細レベルロジックに相当するものを実装しようとしています。基本的にズームアウト時は50%のポイントを表示します。ズームインすると、ポイントの 100% が表示されます。
最終的な SQL を次のようにする必要があります。
SELECT *
FROM
(SELECT
[t0].[RecordName],
[t0].[LastMaintenanceDate]
,Row_Number() OVER (ORDER BY [t0].Ticker) as RowNumber
FROM
[dbo].[TableName] AS [t0]
)as [t1]
WHERE RowNumber % 2 = 0
LINQ では、.Skip と .Take を使用して Row_Number() Over 部分を取得できます (例 here ) が、これを行う場合、生成された Where 基準では、必要な "where RowNumber % 2 = 0" の代わりに 'between' が使用されます。 .
私はこれに正しく取り組んでいますか?ここで求めている完全なパフォーマンスの向上を得るには、SQL サーバーでこの除外を実際に行う必要があります。