Derzeit treten einige Leistungsprobleme auf, da unsere Datenbank zu groß wird. Es sind Daten aus den letzten 10 Jahren gespeichert und ich sehe keinen Grund, warum die Daten, die älter als 2 Jahre sind, in denselben Tabellen wie die neuen Daten gespeichert werden müssen.
Da ich keine tiefgreifende Erfahrung in der Verwaltung von Datenbanken habe, suche ich nach den besten Möglichkeiten, um alte Daten zu archivieren.
Info
Insgesamt befinden sich in der Datenbank etwa 310'000'000 Datensätze.
Die Datenbank benötigt 250 GB auf der Festplatte.
- Die Serverversion ist SQL Server 2008 mit der Kompatibilitätsstufe SQL Server 2005 (90). In Kürze ist jedoch ein Upgrade auf SQL Server 2012 geplant
Ich habe über zwei Möglichkeiten nachgedacht:
Neue Datenbank
Erstellen Sie eine Datenbank ähnlich der auf dem Produktionsserver und fügen Sie alle alten Daten in die neue Datenbank ein.
- Nachteil: Da Verbindungsserver in unserer Umgebung nicht zulässig sind, ist es schwierig, bei Bedarf die alten Daten zusammenzuführen
Verlaufsschema
Erstellen Sie ein neues Schema, z. B. [hist], mit denselben Tabellen wie in der Produktionsdatenbank. Fügen Sie alle alten Daten in diese neuen Tabellen im neuen Schema ein.
- Vorteil: Einfaches Zusammenfügen, wenn in Zukunft alte Daten benötigt werden
- Ziehen Sie eine der Lösungen der anderen vor?
- Warum?
- Gibt es bessere Möglichkeiten?
- Gibt es Tools, mit denen diese Aufgabe problemlos möglich ist?
- Irgendwelche anderen Gedanken?
Danke im Voraus
Bearbeiten
Zusätzliche Frage:
Würde die neu erstellte Archivtabelle auch Primär- / Fremdschlüssel benötigen?
Oder sollten sie nur die Spalten haben, aber ohne Schlüssel / Einschränkungen?