Ich habe eine kleine Anwendung geschaffen, die relativ viele Daten sammelt. Meine Tests haben ergeben, dass nach etwa zwei Jahren Betrieb mit Geschwindigkeitsproblemen zu rechnen ist, weil sich immer mehr Daten ansammeln. Einige Optimierungen (Trigger, Indizes, keine nested Abfragen) habe ich schon umgesetzt, jedoch scheint mir, dass ich am Löschen von Datensätzen langfristig nicht vorbei komme.
Wobei der benötigte Speicherplatz nicht das Problem ist, sondern nur die Performane ab einer Datenbankgröße von etwa 1 GB. Auch wenn bei dieser Größe die SQL-Abfragen in Summe bei Interaktion des Anwenders nur 4-5 Sekunden dauern, ist das schon zuviel, weil man nicht mehr flüssig damit arbeiten kann.
Momentan spiele ich mit dem Gedanken, beim Insert von neuen Datensätzen per Trigger alte Datensätze zu löschen und in eine Backup-Datenbank zu verschieben.
Als Anfänger in der Datenbankprogrammierung frage ich aus dem Bauch heraus, ob es vielleicht Löschstrategien oder Backupstrategien gibt, bei denen das Datenbanksystem oder die Sprache SQL selbst eine Hilfestellung bietet, die über das manuelle Löschen hinaus geht, oder ob es andere Ansätze gibt die eleganter sind als mein derzeitiger Lösch-Ansatz.