Vorschlag für das Design einer großen SQL Server-Datenbank


8

Wir erstellen eine Datenbank in MSSQL 2008 R2 Standard, in der wir eine große Anzahl von Datensätzen speichern werden. Wir schätzen jährlich mehr als 200 Millionen Datensätze in einer Tabelle und fügen hauptsächlich sehr wenige UPDATEs oder DELETEs in die Daten ein. Es ist ein Datenarchivierungssystem, in das wir täglich historische Aufzeichnungen einfügen. Wir werden auf Benutzeranfrage verschiedene Arten von Berichten zu diesem historischen Datensatz erstellen, sodass wir einige Bedenken haben und technische Eingaben und Ratschläge benötigen.

  • Was ist der beste Weg, um diese Art von Archivtabellen und Datenbanken zu verwalten?

1
Wenn Sie eine große Datenbank (oder eine für Sie große) entwerfen, ist es wichtig, dass Sie das Design von Anfang an erstellen. Der beste Weg, dies zu tun, besteht darin, einen Datenbankspezialisten zu beauftragen, der mit Datenbanken im Bereich gearbeitet hat, über den Sie sprechen . Dies ist wichtiger als die Einstellung von Anwendungsentwicklern.
HLGEM

Antworten:


12

Hier ist meine Meinung:

  1. Wenn Sie nur sehr wenige Aktualisierungen / Löschungen haben, können Sie den Seitenfüllfaktor auf 95% erhöhen. Dies spart Platz und liest. Machen Sie aber einige Tests.
  2. Partitionieren Sie die Tabelle anhand einer breiten Kategorie wie Jahr.
  3. Legen Sie diese Partitionen auf verschiedene Dateigruppen.

7

200 Millionen Zeilen pro Jahr sind nicht besonders groß (es sei denn, die Zeilen sind ungewöhnlich groß). Sie müssen auf solide Prinzipien für das Datenbankdesign (Normalisierung) achten und Standardfunktionen wie Indizierung und Partitionierung verwenden. Natürlich ist auch die richtige Hardware wichtig.

Hier gibt es nicht genügend Informationen, um konkrete Ratschläge zu geben. Stellen Sie jemanden ein, wenn Sie der Meinung sind, dass Sie Hilfe bei der detaillierten Planung und Implementierung benötigen.


Vielen Dank für Ihre Eingabe. Wir haben die Entwurfsprinzipien angewendet, auf die Sie sich beziehen, arbeiten jedoch an der Indizierung, sobald der Entwicklungsteil abgeschlossen ist. Ich denke, für die Partitionierung benötigen Sie eine Enterprise-Lizenz und wir haben derzeit eine Standard Edition-Lizenz.
Kodvavi

6
  • Stellen Sie sicher, dass Ihr Design es Ihren Einsätzen ermöglicht, immer am Ende der Tabelle zu stehen. Hinweis Clustered Index.

  • Es gibt nur sehr wenige nicht gruppierte Indizes, die die Berichte unterstützen, die Sie ausführen müssen, um sie auf ein Minimum zu beschränken. Sind diese Berichte vorgeneriert? Wenn ja, dann überlegen Sie sich folgende Frage: Ist es in Ordnung, wenn die Erstellung des Berichts 2 Stunden dauert (ohne Index) oder 1 Minute (mit Index)? Vielleicht ist es in Ordnung, den Bericht 2 Stunden dauern zu lassen, um einen Index weniger zu haben? oder vielleicht nicht? Wenn der Bericht nicht gut vorgeneriert ist, ist dies eine andere Frage, da Benutzer nicht gerne warten und Sie möglicherweise mehr Indizes implementieren müssen, um Ihre Berichte zu unterstützen.

  • Wie Sie diese Datenbank beschreiben, scheint es, als würden Sie viele Zeilen erwarten und die Daten werden viel hinzufügen und wachsen. Haben Sie darüber nachgedacht, wie Sie dieses System sichern können? Ich denke, die meisten Daten werden gleich sein und nur neue hinzufügen? Ich kenne die geschäftlichen Anforderungen dieses Systems nicht, aber mir scheint, dass dies in ein oder zwei Jahren eine Datenbank von beträchtlicher Größe sein könnte und Sie möglicherweise Probleme haben, viele vollständige Backups zu erstellen. Erwägen Sie eine vollständige Sicherung mit regelmäßigen (wöchentlichen?) Und differenziellen (täglichen?) Und Transaktionsprotokollen (stündlich?). Natürlich, wie gesagt, ich kenne die Geschäftsanforderungen nicht. Vielleicht benötigen Sie nicht immer alle Sicherungen? Größe kann in Archivsystemen ein Problem sein.


1
Danke Martin für deinen Beitrag. Tatsächlich enthält die Datenbank Statistiken und historische Aufzeichnungen über landwirtschaftliche Produkte. Das Wachstum ist beträchtlich und Ihre Beiträge zur Sicherung sind nützlich. Wir haben die Sicherungsroutine bereits geplant und Ihre Eingabe hat einen großen Mehrwert gebracht. Unser bestehender Sicherungsprozess für verschiedene Datenbanken verfolgt einen ähnlichen Ansatz. Tägliches Differential und wöchentliches vollständiges Backup.
Kodvavi

1
Übrigens ist das Design fast endgültig und wir verwenden SSRS für die Berichterstellung und die Arbeit ist großartig, aber wir arbeiten noch an der Feinabstimmung und Leistungssteigerung, bevor wir in die Produktion gehen.
Kodvavi
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.