[SQL Server 7.0] Abfrage morgens langsamer als tag

Problem: eine bestimmte DB-Abfrage (stored procedure mit einem INSERT und joins auf diverse Tabellen) dauert morgens wesentlich länger als tagsüber (40 statt 10 Minuten). Ich habe schon folgende DInge getestet/festgestellt/ausprobiert während den (langsamen) Morgenstunden:

  1. die Verlangsamung ist gleichverteilt über 1,5 Stunden für mehrere 1000 Abfragen.

  2. es laufen keine anderen DB-Abfragen (Test mit Applikation, Profiler, sp_who2)

  3. es laufen keine anderen Prozesse auf dem Server als der SQL Server selbst (die nennenswerte CPU Zeit ziehen) - sonst wäre die Verlangsam auch etwas gleichverteilt auf alle Abfragen in dieser Zeit.

  4. es laufen keine Optimierungsaufträge/KOmmandos (rebuild index, update statistics, recompile object) zwischen dem langsamen Morgen und dem schnelleren Tag.

  5. EIn Teil der Läufe habe ich auch mal Morgens deaktiviert und erst Mittags laufen lassen => trotzdem MIttags schneller => caching sollte keine Rolle spielen.

  6. Caching sollte keine Rolle spielen, da bei mehreren hundert/tausend Aufrufen der gleichen Prozedur nach kurzer Zeit die optimale Performance erzielt werden.

  7. Bei den hundert/tausend Aufrufen sind die Ergebnisdatenmengen bunt gemischt - auch MIttags. Es gibt keine Zusammenhänge zwischen den Datenmengen under Verlangsamung.

  8. EIn detailiertes tracen mit SQL Profiler hat gezeigt, dass morgens wesentlich höhere Werte in der Spalte „Lesevorgänge“ (340.000 statt 3.100!; CPU: 2031 statt 32 für einen bestimmten Job) angezeigt werden. Nur: der Aufruf der stored procedure ist exakt der gleiche (d.h. gleiche Parameter) und die Quell- und Zieldatenmengen sind die gleichen wie bei der Mittagsabfrage.

=> leider komme ich nun nicht mehr weiter, wodurch diese hohe Zahl der Lesevorgänge verursacht wird.

Hat jemand noch eine Idee?