我使用以下查询,
SELECT qTermine.REISENR,
qTermine.REISEVON,
qTermine.REISEBIS,
MIN(qPreise.PREIS) AS PREIS
FROM qTermine,
qPreise
WHERE qPreise.REISENR = qTermine.REISENR
AND qPreise.PROVKLASSE = 1
AND qPreise.VERFUEGBAR <> 0
GROUP BY qTermine.REISENR,
qTermine.REISEVON,
qTermine.REISEBIS 我只想选择那些价格最低的行。
这是可以的,还是我们可以优化它?
发布于 2012-05-03 14:21:57
查询本身就是好的。这个问题很难回答,因为对于大多数用途来说,你写的东西都很好。您当前是否遇到性能问题,或者此查询的执行时间是否过长?或者你只是小心翼翼,想要避免引入一个大的瓶颈?在后一种情况下,我认为您不需要担心;同样,在大多数情况下,这是很好的。
确保在两个表和qPreise.PREIS上都有REISENR索引。至于PROVKLASSE和VERFUEGBAR,我有一种感觉,如果你要添加它们(你可以在你的执行计划中检查),它们将不够唯一,不足以让索引真正地被使用,但是如果不深入了解你的数据就很难判断。
发布于 2012-05-03 14:23:20
您的查询很好,如果您在"qPreise.PREIS“上有索引,您可以有更好的性能。
https://stackoverflow.com/questions/10426075
复制相似问题