【发布时间】:2014-01-27 03:04:04
【问题描述】:
我有以下访问查询,它工作正常。但是,现在大约需要 8-10 秒才能完成大约 700 条记录的表。 FROM 是另一个查询时间非常短的查询。我已将其范围缩小到 MAX() 函数,因为当我删除该函数时,它会以非常短的查询时间运行。我能做些什么来加快速度?我将假设随着更多数据进入数据库,查询所需的时间越长。
SELECT FirstName, LastName, TeamID, MAX(total) AS totalMax
FROM attendanceViewAll
WHERE TeamID IN(5,9,13)
GROUP BY FirstName, LastName, TeamID
这里是子查询,基本上它从一个表中选择一堆数据。这会在不到一秒的时间内发生。此查询的结果是按日期和agentID 排序的所有内容。然后我使用上面的查询来查找MAX(total),这样我就可以对代理进行分组以获得摘要。我也将以下查询用于其他报告。
SELECT
a1.TeamID,
a1.FirstName,
a1.LastName,
a1.incurredDate,
a1.points,
a1.OneFallOff,
a1.TwoFallOff,
(select sum(a2.actualPoints)
from attendanceView as a2 where a2.agentID = a1.agentID and a2.incurredDate <= a1.incurredDate) as total,
a1.comment, a1.linked, a1.FallOffDate
FROM attendanceView as a1;
【问题讨论】:
-
你如何组装你的
attendanceViewAll视图? -
在不知道子查询做什么的情况下,提出优化策略是没有意义的。
-
我已使用其他查询进行了编辑。
-
也请
attendanceView
标签: sql ms-access-2010