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.
Entzieht sich jetzt aber meiner Kenntnis ob man dieses Verhalten in der EE beeinflussen kann.
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.
Je kleiner die Daten im Index umso weniger Daten müsse ja von der Platte gelesen werden, somit ist es schon ein Unterschied, ob man eine Spalt mit 1 Byte / 4 Byte oder x Byte hat.
Messbar wird das natürlich erst ab einer bestimmten Anzahl an Datensätzen (könnte bei dir also schon relevant sein)