我有一個特殊的SQL查詢,似乎遭受了一個神祕的性能問題。下面是該查詢:需要使用聚合函數來提高SQL查詢的性能
SELECT COUNT(LengthOfTime) AS TotalTime,
SUM(LengthOfTime) AS TotalLength,
SUM(LengthOfTime)/COUNT(LengthOfTime) AS AverageTime,
SUM(Pops)/COUNT(LengthOfTime) AS AveragePop
FROM ((SELECT *
FROM (SELECT *, ID & YearRec AS ID2
FROM MyFirstTable
UNION ALL
SELECT *, ID & YearRec AS ID2
FROM Table2011) AS TEMP
WHERE STARTTIME >= '8/1/2011 00:00:00'
AND StartTime <= '8/5/2011 23:59:59') AS TEMP2
JOIN AppleTable ON TEMP2.Reason = AppleTable.Skills)
JOIN PeopleTable ON TEMP2.Operator = PeopleTable.Operators
WHERE AppleTable.[ON] = 1
AND PeopleTable.[ON] = 1
AND Rec_Type = 'SECRET AGENT'
這裏的問題是,這個查詢運行速度很快(0:00至0:02),當5天跨度運行,但速度很慢(1:20至1:45 )爲期6天。
表中每天約有105,000條記錄(MyFirstTable和Table2011)。
我的問題:有沒有上限,你看到在SQL Server中的一個嚴重的性能問題之前,你可以通過聚合函數的行數? (目前使用的是2008 R2)
是您的統計數據,您是否最近重新編制了索引? –
您的聲音可能會從內存操作溢出到需要磁盤的操作。我不熟悉MySQL調優細節,但是如果有臨時工作區的內存分配參數,可以嘗試增加它。 –
@Jim:它不是mySQL ... –