Ich vermute mal, du hast die
MSSQL Express Edition, die ja meist auf Desktop-Rechner eingesetzt wird. Da wird nach einiger Zeit der Index-Cache geleert, sonst könntest du irgendwann der Rechner nicht mehr gebrauchen.
Nein, ich benutze für die Tests den Testserver von der Firma, dort haben wir mehrere MS
SQL Server 2008 Enterprise x64 und 12 GB Arbeitsspeicher. Woran kann das Problem mit der ersten langsamen Abfrage?
Der echte
MSSQL macht das
imho nicht (nur wenn der
RAM-Speicher nicht ausreicht). Darum sollte ein
SQL-Server auch mit mind. soviel
RAM ausgerüstet sein, dass alle Indizes im
RAM Platz haben. Beim Start kann man auch beobachten, dass der
SQL-Server die gesamte
RAM-Kapazität (die er nehmen darf) an sich reißt.
Genau das beobachte ich beim Start des Servers. Sogar wenn noch gar keine Datenbanken vorhanden waren, nahm sich der
SQL Server innerhalb weniger Minuten ganze 96% des Arbeitspeichers. Kann das sein, dass jetzt, wenn ich eine Tabelle mit über 3.5 Mio. Datensätze mir mehrerer indizierten Spalten habe, den Arbeitsspeicher nicht ausreicht? Eigentlich habe ich nur auf SmallInt- und TinyInt-Spalten Indizies gesetzt, die sollten eingenrlich nicht viel Platz belegen, oder?