我有一个查询,它返回 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 部分(例如此处),但是在执行此操作时,生成的 Where 条件使用“between”而不是“where RowNumber % 2 = 0”,我需要.
我正确地接近这个吗?为了获得我们在这里寻找的全部性能提升,这个排除确实需要在 SQL 服务器上发生。