Tjena,Skumt prestandaproblem i SQL-fråga
Försöker få ihop en något udda SQL-fråga:
<code>
SELECT
DATE(FF.Occured) Dy,
(SELECT COUNT(F.FragId) FROM Frags F WHERE F.KillerNicknameId = 4 AND DATE(F.Occured) < Dy) Kills
FROM Frags FF
WHERE FF.VictimNicknameId = 4 OR FF.KillerNicknameId = 4
GROUP BY Dy
</code>
Ovan är en förenklad variant. Det jag vill uppnå är att för varje datum Occured i Frags summera antalet Frags upp till det datumet. På så vis kan jag se hur många Frags varje Nickname hade vid varje given dag (och plotta snygga diagram på detta).
Men när jag kör frågan ovan hänger sig alltihop (det står bara "Executing query..." och jag blir tvungen att avbryta eftersom jag aldrig får tillbaka något resultat).
Nedan är samma fråga, fast med ett hårdkodat, statiskt datum i subfrågan:
<code>
SELECT
DATE(FF.Occured) Dy,
(SELECT COUNT(F.FragId) FROM Frags F WHERE F.KillerNicknameId = 4 AND DATE(F.Occured) < '2008-03-01') Kills
FROM Frags FF
WHERE FF.VictimNicknameId = 4 OR FF.KillerNicknameId = 4
GROUP BY Dy
</code>
Denna fråga exekveras på ~80 ms.
Vad är det som sänker den ursprungliga frågan? Gör jag något jättedumt som gör att den stackars databasservern helt sliter ut sig?
(Tabellen Frags innehåller ~20000 poster).
Tack på förhand!