Ich habe gesehen, dass unsere Datenbank das vollständige Wiederherstellungsmodell hat und ein 3-GB-Transaktionslog hat.
Wie wird sich dies auf die Leistung der Datenbank und die Leistung der Anwendungen auswirken, die auf die Datenbank zugreifen, wenn das Protokoll größer wird?
JD
Die empfohlene bewährte Methode besteht darin, einer SQL Server-Transaktionsprotokolldatei eine eigene Festplatte oder LUN zuzuweisen.
Dies dient dazu, eine Fragmentierung der Transaktionsprotokolldatei auf der Festplatte zu vermeiden, wie von anderen Postern erwähnt, und um Datenträgerkonflikte zu vermeiden / minimieren.
Das ideale Szenario besteht darin, dass Ihr Datenbankadministrator vor der Zeit ausreichend Protokollspeicherplatz für Ihre Datenbankumgebung reserviert, d. h., um x GB Daten auf einmal zuzuweisen. Auf einer dedizierten Festplatte wird dadurch eine zusammenhängende Zuweisung erstellt, wodurch eine Fragmentierung vermieden wird.
Wenn Sie Ihr Transaktionsprotokoll vergrößern müssen, sollten Sie sich erneut bemühen, dies in großen Blöcken zu tun, um sich zusammenhängend zu verteilen.
Sie sollten auch darauf achten, Ihre Transaktionsprotokolldatei NICHT zu verkleinern, da wiederholtes Verkleinern und automatisches Wachstum zu einer Fragmentierung der Datendatei auf der Festplatte führen kann.
Ich finde es am besten, die Autogrowth-Datenbankeigenschaft als ausfallsicher zu betrachten, dh Ihr DBA sollte proaktiv den Speicherbereich des Transaktionsprotokolls überwachen (vielleicht durch Einrichten von Warnungen), damit er die Größe der Transaktionsprotokolldatei entsprechend erhöhen kann Die Autogrowth-Eigenschaft kann jedoch vorhanden sein, um sicherzustellen, dass Ihre Datenbank bei unerwartetem Wachstum normal weiterarbeitet.
Eine größere Transaktionsprotokolldatei an sich, wenn sie der Performance nicht abträglich ist, da SQL Server sequenziell in das Protokoll schreibt. Wenn Sie also Ihre Gesamtprotokollgröße verwalten und zusätzlichen Speicherplatz entsprechend zuweisen, sollten Sie nicht betroffen sein.
Auf ein paar Arten.
Wenn Ihr System so konfiguriert ist, dass das Transaktionsprotokoll automatisch vergrößert wird, muss Ihr SQL-Server mehr arbeiten, wenn die Datei größer wird, und Sie werden möglicherweise langsamer. Wenn Ihnen endlich der Speicherplatz ausgeht, haben Sie kein Glück mehr und Ihre Datenbank wird keine neuen Transaktionen mehr durchführen.
Sie müssen mit Ihrem DBA (oder vielleicht sind Sie der DBA?) und häufige, regelmäßige Protokollsicherungen durchführen. Speichern Sie sie von Ihrem Server auf einem anderen dedizierten Backup-System. Wenn Sie das Protokoll sichern, wird der Speicherplatz in Ihrer vorhandenen Protokolldatei wiederhergestellt, sodass das Protokoll nicht viel größer wird. Durch das Sichern des Transaktionsprotokolls können Sie Ihre Datenbank auch zu einem bestimmten Zeitpunkt nach der letzten vollständigen oder differenziellen Sicherung wiederherstellen, was Ihre Datenverluste im Falle eines Serverfehlers erheblich verringert.
Wenn das Protokoll fragmentiert wird oder vergrößert werden muss, verlangsamt es die Anwendung.
Wenn die Protokolldatei in kleinen Schritten größer wird, verfügen Sie über viele virtuelle Protokolldateien Diese virtuellen Protokolldateien verlangsamen das Starten, Wiederherstellen und Sichern der Datenbank.
Hier ist ein Artikel, der zeigt, wie man das beheben kann: Ссылка
Tags und Links sql-server