Jeg har et bestemt SQL-spørsmål som ser ut til å lide av et mystisk ytelsesproblem. Her er spørringen:
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'
Problemet her er at denne spørringen kjører veldig raskt (0:00 til 0:02) når den kjøres i en 5-dagers periode, men veldig sakte (1:20 til 1:45) for en 6 dagspenn.
Det er omtrent 105 000 poster per dag i tabellene (MyFirstTable og Table2011).
Spørsmålet mitt : Er det en øvre grense for antall rader du kan passere en samlet funksjon før du ser et alvorlig ytelsesproblem i SQL Server? (bruker for øyeblikket 2008 R2)