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?
sql-server
sql-server-2012
tempdb
Alexandre Jobin
quelle
quelle
Antworten:
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.
quelle
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.
quelle
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.
quelle