我有一张像
FieldA, FieldB, FieldC, FieldD, TheDate, Count
Count
我有一个网络应用程序,它提供了每个字段前几个的仪表板。不想过早优化,这些图表的原始蛮力查询如下:
SELECT TOP 10
FieldA,
SUM(Counts) AS Counts
FROM TheTable
WHERE @StartDate <= TheDate AND TheDate <= @EndDate
GROUP BY FieldA
ORDER BY Counts
其他领域也是如此。但是服务器最终会为每个图表单独选择日期范围,当有大量数据时,系统就会陷入困境。
获取应用程序中的所有数据(一次)然后在本地按列进行汇总似乎是错误的。也许 RDBMS 缓存了很多记录,所以第二个到第四个图表比第一个更有效。
我正在使用 Azure SQL,SQL Server Management Studio 和 DataGrip 都没有建议任何可能有帮助的缺失索引。
对在同一数据上执行多个类似选项的技术有什么想法吗?通常或用于 Azure SQL。谢谢。