Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.737 Beiträge
Delphi 12 Athens
|
AW: Datenlogger mit MSSQL und Index-Fragmentierung
Gestern, 09:06
Nur mal so ein wenig out-of-the-box gedacht:
Was wäre wenn du alle Datensätze im Voraus anlegst, diese nach aufsteigender ID per UPDATE befüllst und wenn du beim letzten angekommen bist wieder mit dem ersten weitermachst (ein Ringbuffer halt). In einer separaten Tabelle führst du ID und LogTime des ältesten und neuesten Satzes mit.
Da ja (nach 90 Tagen) für jede Sekunde ein LogTime NOT NULL
-Datensatz vorhanden ist, kannst du unter Berücksichtigung des Überlaufs für jede Sekunde die ID bestimmen. Den Index auf LogTime brauchst du nicht mehr und der für ID ändert sich nicht, da beim UPDATE die ID gleich bleibt.
Abfragen nach Zeiträumen errechnen die WHERE Klausel für die entsprechenden ID Werte (in den ersten 90 Tagen noch mit LogTime NOT NULL
) und die Sortierung läuft über ein ORDER BY LogTime
.
Das müsste man sicher noch im Detail ausarbeiten, aber es wäre zumindest ein interessanter Ansatz.
|