Best Practice für Tempdb-Protokolldatei

11

Ich habe hier und da viele Blogs über das Konfigurieren von Tempdb-Datendateien gelesen, aber ich habe keine Informationen bezüglich der Tempdb-Protokolldatei gefunden .

Hier ist die Strategie, die ich derzeit mit meiner Tempdb verwende:

  • Ich habe die Empfehlungen von Paul Randal zum Teilen meiner Tempdb-Datendateien verwendet
  • Ich habe die Größe meiner Tempdb-Datendateien auf das maximale und deaktivierte automatische Wachstum eingestellt. Zum Beispiel habe ich 100 GB freien Speicherplatz und stelle die Größe meiner 8 Tempdb-Datendateien auf jeweils 10 GB ein. Dies verhindert eine Fragmentierung auf der Festplatte, wie von Brent Ozar empfohlen, und ich habe 20 GB frei für meine Protokolldatei.

Aber wie gesagt, niemand spricht über die Tempdb-Protokolldatei . Was soll ich damit machen? In meinem Setup befindet sich diese Datei am selben Ort wie die Tempdb-Datendateien. Welche Größe und welchen Wert für das automatische Wachstum sollte ich für die Tempdb-Protokolldatei verwenden?

Alexandre Jobin
quelle
4
Es gibt keine magische Antwort darauf, außer dass ich das automatische Wachstum für Tempdb-Daten oder -Protokolle nicht deaktivieren würde , es sei denn, Sie möchten unbedingt, dass das System kreischend zum Stillstand kommt, falls ein automatisches Wachstum erforderlich sein sollte. Ich würde das automatische Wachstum für keine Datei deaktivieren, da es immer ungewöhnliche Situationen gibt, egal wie gut Sie planen.
Aaron Bertrand
2
@AaronBertrand: Das Aktivieren des automatischen Wachstums auf einer Tempdb in voller Größe hilft nicht. Sie sind bereits maximal, sie können auf dem Laufwerk sein. Es gibt sowieso keinen Speicherplatz mehr, den sie nutzen können. Aus diesem Grund habe ich das automatische Wachstum deaktiviert.
Alexandre Jobin
2
Dann ist es egal, ob es deaktiviert ist oder nicht, oder? Wenn ein Autogrow erforderlich ist, schlägt dies in beiden Fällen fehl. Wenn Sie es aktiviert lassen, müssen Sie dies weniger ändern, wenn Sie feststellen, dass Sie es möglicherweise auf ein größeres Laufwerk verschieben müssen.
Aaron Bertrand
1
PS 8 x 20> 100
Aaron Bertrand
1
Das Aufteilen Ihrer Dateien ist nicht unbedingt "ein gutes Setup". Dies hängt von Ihrer Hardwarekonfiguration ab. die Sie nicht geliefert haben.
Paul

Antworten:

5

Es hängt wirklich davon ab, wie viele Daten durch das Transaktionsprotokoll fließen. Schauen Sie sich an, wie groß das Protokoll heute wird. Sie müssen das Protokoll so konfigurieren, dass es beim Start von SQL mindestens so groß ist. Für die meisten meiner Kunden erhalten sie ein 3-4-Gig-Transaktionsprotokoll für die Tempdb, das nur wenige VLFs enthält und alles funktioniert gut und reibungslos.

mrdenny
quelle
0

Mir wurde immer gesagt, dass ich Protokolldateien auf einem separaten physischen / Festplatten-Array speichern soll, wenn Ihre Hardware gleichzeitig in Daten schreiben und gleichzeitig protokollieren kann, um die Leistung zu verbessern. Ich würde vermuten, dass die Einschränkung, die Ihr 20G-Tempdb-Limit hervorgebracht hat, eine Antwort auf die Größe definiert. Für das automatische Wachstum hängt dies möglicherweise von den von Ihnen ausgeführten Transaktionen sowie dem verfügbaren freien Speicherplatz und anderen Ressourcen auf der Festplatte ab. Normalerweise wähle ich 1/6 der Anfangsgröße willkürlich aus.

Robert Gannon
quelle
0

Aaron hat Recht, die Konfiguration von TempDB hängt von vielen Variablen ab, z. B. davon, ob Sie die Snapshot-Isolation verwenden möchten oder nicht. Hier ist ein älteres SQL 2005-Whitepaper von MS / TN , das Ihnen möglicherweise helfen kann, da ein guter Teil davon noch gilt. Sehen Sie sich insbesondere den "für die Tempdb-Protokollierung erforderlichen Speicherplatz" an, damit Sie sehen können, welche Arten von Transaktionen im Tempdb-Protokoll protokolliert werden, damit Sie die entsprechenden Einstellungen vornehmen können. Es wird wahrscheinlich die Art von Dingen sein, die Sie im Laufe der Zeit überwachen und optimieren müssen.

Was das Authogrowth für Tempdb angeht, habe ich dies in der Vergangenheit auf einem Berichtsserver widerstrebend deaktiviert. Das Verhalten, das ich erlebt habe, war, dass die lang laufende Transaktion abgebrochen und zurückgesetzt wurde, wodurch der Protokollspeicherplatz sofort frei wurde, dies jedoch möglicherweise von der abhängt Art der Transaktion, die in meinem Fall massive Sortierungen und Join-Operationen war (schlecht geschriebene Berichtsabfragen). Ich stimme Aaron zu und würde empfehlen, dies nach Möglichkeit zu vermeiden, insbesondere in Situationen mit hohem Transaktionsvolumen.

Miketk
quelle