Eine einfache Möglichkeit wäre, einen Job zu planen, der jede Nacht läuft und eine gespeicherte Prozedur aufruft, um alle Zeilen zu löschen, die älter als drei Monate sind. Abhängig von Ihrem Betriebssystem sollte dies einfach zu bewerkstelligen sein. Wenn Sie dies jede Nacht tun, wird die Menge der gelöschten Daten nicht so groß sein wie bei einer Löschung pro Monat oder so.
Ich habe auch in der Vergangenheit, hatte Code in meinem SP, die Daten eingefügt, um die Löschungen von nicht benötigten Daten zu diesem Zeitpunkt zu tun, so dass im Grunde jedes Mal, wenn eine Zeile eingefügt wird, direkt nach der Einfügung in lief ein "cleanup" proc, die ein bisschen Wartung. Das wäre nicht meine erste Wahl, aber es ist machbar, wenn die Anzahl der Einfügevorgänge gering ist und die Löschvorgänge schnell durchgeführt werden können (man will ja den Benutzer nicht ausbremsen). Ein schöner Nebeneffekt ist, dass die Daten immer sauber (d.h. alle Daten sind immer <= 3 Monate alt), aber ich bin nicht sicher, ob das für Ihre Anwendung von Bedeutung ist.
Sie sollten auch in Erwägung ziehen, die Zeilen nicht nur zu löschen, sondern in einer anderen Tabelle zu archivieren, wenn es eine jede Es besteht die Möglichkeit, dass Sie die Daten eines Tages für einen anderen Zweck benötigen. I immer Wenn Sie dies tun, werden Sie überrascht sein, wie heldenhaft Sie sein können, wenn ein Manager, der nicht einmal weiß, dass Sie die Daten speichern, plötzlich einen dringenden Bedarf daran hat.... und Sie ihm diesen erfüllen können.