Wir haben einen Wartungsplan für unseren SQL Server 2008 r2 Express. Jeden Monat wird die Datenbank defragmentiert, wenn eine Tabelle eine Seitenzahl von mehr als 50 für eine Tabelle und eine durchschnittliche Fragmentierung von mehr als 20 aufweist.
Wenn die Datenbankprotokollgröße> 2 MB ist, wird der Wiederherstellungsmodus vereinfacht, verkleinert und der Wiederherstellungsmodus auf VOLL zurückgesetzt. Wenn Page_count> 50 und avg_fragmentation_in_percent> 30 sind, lautet der Index REBUILD.
Und wenn Page_count> 50 und avg_fragmentation_in_percent> 5 und <30 sind, lautet der Index REORGANIZE.
Dies ist, was wir bis jetzt tun. Aber wir haben festgestellt, dass Autogrowth-Ereignisse ressourcenintensiv sind und nicht wiederholt auftreten sollten. Jetzt wird für alle Datenbanken das automatische Wachstum für die MDF-Datei auf MB und für die ldf-Datei auf 10% festgelegt. Dies ist der Standardwert beim Erstellen einer neuen Datenbank. Wir planen, die Werte für das automatische Wachstum der Datenbank zu erhöhen, je nachdem, wie viel Datenbank jeden Tag größer wird Ich möchte wissen, wie viele Autogrowth-Ereignisse für die Datenbank ideal sind. Soll ich Autogroth so einstellen, dass es nur einmal am Tag, in der Woche oder im Monat usw. auftritt? Bitte helfen Sie mir, den Autogrowth-Wert für meine Datenbank festzulegen. Es gibt auch ein anderes Problem, wenn ich die Datenbank monatlich entfragmentiere, wird sie verkleinert. Danach tritt für alle Datenbanken, für die ich das Autogrowth verkleinert habe, einmal auf, wenn neue Daten darauf geschrieben werden. Es wird also so viele Autogrowth-Ereignisse geben. Also, ob es ein Problem sein wird? Bitte sagen Sie mir eine Lösung.
quelle
Die Punkte von Thomas Stringer sind alles, was Sie für Ihre Antwort benötigen. Aber ich würde noch einen Einblick geben, wie Sie Ihre Einstellungen für das automatische Wachstum bestimmen.
Es gibt keine mathematische Formel zum Berechnen Ihrer Einstellungen für das automatische Wachstum, insbesondere wenn Sie keine Basislinie Ihrer Datenbanken erstellen.
Nun, da @ThomasStringer darauf hingewiesen hat, dass Sie das automatische Wachstum Ihrer Datenbank nicht in% zulassen sollten, sondern auf MB setzen sollten, können Sie mithilfe der Standardablaufverfolgung herausfinden, ob auf Ihrer Serverinstanz Autogrowth-Ereignisse auftreten .
Unten wird die Ausgabe sein
Hinweis: Ich habe im Bild hervorgehoben, was jede Spalte bedeutet und wonach Sie suchen sollten.
Grundsätzlich müssen Sie Ihre Autogrowth-Ereignisse für einen bestimmten Zeitraum überwachen, z. B. während einer hohen Aktivität oder für Ihren gesamten Geschäftszyklus. Durch Mittelwertbildung erhalten Sie einen genauen Wert, den Sie für die Autogrowth-Einstellungen auswählen können.
Für die Protokolldatei müssen Sie jetzt auch Faktoren wie die Indexpflege, die Ausführung von CHECKDB usw. berücksichtigen. Passen Sie daher die Größe der Protokolldatei an, um das Volumen der in der Datenbank auftretenden Datenänderungen zu unterstützen, und führen Sie häufig Protokollsicherungen durch, um eine schnelle Wiederverwendung des Speicherplatzes zu ermöglichen innerhalb der Protokolldatei.
Erwähnenswert ist auch, dass Sie auch die sofortige Dateiinitialisierung aktivieren sollten . Funktioniert nur für Datendateien!
Siehe Wichtigkeit der Verwaltung der Datendateigröße, insbesondere das Wachstum von Datendateien und das Verkleinern von Datendateien von Paul Randal.
Hinweis: Verkleinern Sie Ihre Datenbank nicht, es sei denn, Sie bereinigen Ihre Daten massiv und sind sicher, dass die Datenbank nicht wieder so groß wird. Es verursacht Fragmentierung und Datenbanken sollen wachsen!
quelle