【发布时间】:2018-02-27 09:20:58
【问题描述】:
我们有 3 张桌子。 tblMetingen、tblApparaten 和 tblConfiguraties。 Database table structure
tblMetingen 包含来自每个设备的所有测量值。每个设备大约每 7 秒向表 tblMetingen 发送一次数据。每个设备都存储在 tblApparaten 中,每个单独设备的配置存储在 tblConfiguraties 中。
由于某种原因,我们没有将 idApparaat 存储在测量表 (tblMetingen) 中,而是仅存储在 tblApparaten 中,现在我在检索每个设备的最新更新时间时遇到了问题。设备仅在插入电源线时发送。我们知道有些客户在度假时会拔掉插头,但我们需要关注硬件。因此,在联系客户之前,我希望每天创建一份报告,其中包含来自每台设备的最新发送数据,以便我可以跟踪设备拔掉电源的时间。
我使用了以下查询,但这需要很长时间才能检索。必须有一种更智能的方法来检索每个设备的最后发送时间。
SELECT a.idApparaat
, MAX(m.DatumTijd) maxMetingen
FROM tblApparaten a
JOIN tblConfiguraties c
ON c.idApparaat = a.idApparaat
JOIN tblMetingen m
ON c.idSensor = m.idSensor
GROUP
BY a.idApparaat
ORDER
BY a.idApparaat ASC
另外,我们是否应该将 idApparaat 放入测量表 (tblMetingen) 中?
【问题讨论】:
-
您能否为您发布有关索引的查询和信息的解释?
-
tblApparaten 上的索引是 idApparaat,tblConfiguraraties 上的索引是 idSensoren,idMetingen 上的索引是 idMetingen。希望这是您一直在寻找的答案。我确实看到没有人设置其他字段的索引...