Hallo Uwe und Delphi.Narium,
ihr habt beide recht. Das Problem ist recht verzwickt.
Ich habe momentan einen Test laufen, der mir die entsprechenden Datensätze generiert. Zusätzlich logge ich in größeren Abständen die Datenbank und Tabellengröße, die Indexfragmentierungen sowie den Geschwindigkeitsverlust und die Auslastung des Servers bei zunehmender Fragmentierung. Die Ergebnisse sind dabei recht interessant:
Der Speicherverbrauch pendelt sich irgendwann ein. Die Datenbank wächst also nicht weiter und auch die Index-Größen bleiben irgendwann konstant. Die Fragmentierung des Primärschlüssels (ID) bleibt aktuell auch bei ca. 0,7%, ist also vernachlässigbar. Lediglich die Fragmentierung des Zeit-Index wird kontinuierlich schlechter. Allerdings kann ich momentan noch nicht sagen wohin der sich letztendlich entwickelt.
Bezüglich der Abfragegeschwindigkeit (die basiert immer auf der Zeit) kann ich aktuell keine Verschlechterung darstellen. Im Monitorbetrieb werden aber immer max. 7200 Datensätze (2 Stunden) abgefragt. Und das auch nur bei der ersten Anzeige der Graphen. Danach werden im Live-Betrieb immer nur die aktuellsten Werte abgerufen. Lediglich beim Export oder beim Analysieren der historischen Daten werden größere Datenmengen eingelesen. Aber auch da ist Momentan noch keine Verschlechterung zu beobachten.
Die Frage ist halt nun in wie fern ich mir um die Fragmentierung überhaupt Gedanken machen muss. Heutzutage ist das ja alles auf SSDs abgelegt. Und da die Daten aufgrund des "Clustered" Primärschlüssels ja immer hintereinander liegen kommt im Prinzip immer nur der Aufwand für das Lesen des Zeit-Schlüssels zum Tragen. Keine Ahnung wie intelligent der
SQL-Server das intern Managed aber wenn das nicht ganz daneben ist, dann sollte die Fragmentierung des Index evtl. gar keine so große Rolle spielen. Ob der nun 100 µs oder 200 µs oder 1 ms braucht merkt man ja nicht wirklich.
Ich lassen den Test auf jeden Fall noch ein paar Tage laufen...
Man sollte nie so viel zu tun haben, dass man zum Nachdenken keine Zeit mehr hat. (G.C. Lichtenberg)