LDF- und MDF-Dateigrößen für eine dynamisch erstellte Datenbank

7

Ich erstelle eine dynamische Datenbank aus C # -Code und möchte, dass die Datenbank eine feste Größe hat (zum Beispiel 5 GB). Beim Erstellen der Datenbank über Code muss ich die maximalen MDF- und LDF-Dateigrößen angeben. Was sollten die idealen Werte sein? Jeweils 2,5 GB oder ein anderes Verhältnis?

Ich muss sicherstellen, dass die gesamte DB-Größe nicht mehr als 5 GB beträgt. Sollte ich mir also nur Gedanken über die MDF-Größe machen (bei 5 GB bleiben lassen) und die LDF-Größe unbegrenzt wachsen lassen (das kann ich nicht, aber wenn es weh tut) Leistung muss ich dann darüber nachdenken)?

Danke, Vivek

Vivek
quelle

Antworten:

9

Dies hängt alles davon ab, was passieren soll, wenn die Datenbank 5 GB erreicht. Möchten Sie, dass Benutzer Fehler erhalten und die Datenbank unbrauchbar wird, oder möchten Sie nur benachrichtigt werden?

Dies hängt auch davon ab, ob Sie die Protokollgröße getrennt von den tatsächlichen Daten berücksichtigen möchten. Die Protokollgröße schwankt basierend auf einer Vielzahl von Faktoren, einschließlich des Wiederherstellungsmodells, der Häufigkeit von vollständigen / Protokoll- / Diff-Sicherungen, der durchschnittlichen / Spitzengröße von Transaktionen, der Dauer zwischen dem Beginn der Transaktion und dem Festschreiben / Rollback usw.

Schließlich kommt es darauf an, ob Sie dies proaktiv verwalten müssen. Wenn Ihr Protokoll aus einem der oben genannten Gründe 5 GB erreicht, Sie jedoch entschieden haben, dass die Datenbank aufgrund der Protokollnutzung nicht mehr funktionieren soll, müssen Sie eingreifen, wenn die maximale Protokollgröße auf 5 GB festgelegt ist, jedoch die Daten selbst ist wirklich nicht gewachsen ...

Aaron Bertrand
quelle
3
Ich wollte das alles fragen, aber mir fällt nichts ein, was ich hinzufügen könnte, also +1 von mir und +1 (wenn ich könnte), weil dies genau das ist, worüber er nachdenken muss.
jcolebrand
Danke Aaron. Ich möchte benachrichtigt werden, wenn die Größe das Limit überschreitet. Können Sie mir mitteilen, wie diese Benachrichtigung funktioniert?
Vivek
2
Sie können SQL Agent-Warnungen einrichten, die Leistungsbedingungswarnung und das Datenbankobjekt verwenden, um auf Datendatei- / Protokolldateigröße> xGB aufmerksam zu machen. Die Warnung verhindert jedoch nicht, dass die Datenbank wächst. Dies wird nur durch Festlegen einer maximalen Dateigröße erreicht.
SqlACID