Aufteilen von TempDB in mehrere Dateien, die der Anzahl der CPUs entsprechen

8

Der Artikel SQL Server tempdb Best Practices zur Leistungssteigerung schlägt vor, dass ich tempdbin eine Anzahl von Dateien aufteilen sollte , die der Anzahl der Kerne entspricht. Für 4 Kerne erhalten Sie also 4 Dateien.

Durch die größere Anzahl von Dateien können Sie die Anzahl der physischen E / A-Vorgänge erhöhen, die SQL Server gleichzeitig auf die Festplatte übertragen kann. Je mehr E / A-Vorgänge SQL Server auf die Festplattenebene übertragen kann, desto schneller wird die Datenbank ausgeführt. Mit Standarddatenbanken kann SQL Server eine große Menge der benötigten Daten im Speicher zwischenspeichern. Aufgrund der hohen Schreibfähigkeit der Tempdb müssen die Daten auf die Festplatte geschrieben werden, bevor sie wieder im Speicher zwischengespeichert werden können.

Obwohl es theoretisch gut klingt, ist es wirklich so gut als allgemeine Optimierung? Gilt dies möglicherweise nur für bestimmte Systeme, bei denen die E / A sehr hoch ist?

Preet Sangha
quelle

Antworten:

13

Ein Verhältnis von 1/4 zu 1/2 mal der Anzahl von TempDB-Datendateien zu Maschinenkernen ist seit langem die Empfehlung ...

Aber jetzt gibt es noch eine bessere Anleitung. Bei PASS im Jahr 2011 hat sich mein guter Freund Bob Ward, der der Top-Typ im SQL-Produktsupport ist, für eine neue Formel ausgesprochen: Wenn Sie weniger als 8 Kerne haben, verwenden Sie #files = #cores. Wenn Sie mehr als 8 Kerne haben, verwenden Sie 8 Dateien. Wenn im Speicher Konflikte auftreten, fügen Sie jeweils 4 weitere Dateien hinzu. [Verknüpfung]

Der letzte Satz war immer relevant. Wenn Sie keine Konflikte sehen, warum sollten Sie zusätzliche Dateien hinzufügen? Um auf Nummer sicher zu gehen, fügen die meisten 2-4 Dateien als Ausgangspunkt für die meisten Builds hinzu, messen und reagieren darüber hinaus.

Mark Storey-Smith
quelle
10

Wie die meisten allgemeinen Richtlinien ist es eine Übervereinfachung in seinem positivsten Licht. Im besten Fall ist dies ein guter Ausgangspunkt (vorausgesetzt, Sie halten das Verhältnis von Kern zu Datendatei von 1: 1 bei einer großen Anzahl von Kernen nicht ein).

Es gibt keinen Ersatz für ein korrektes Design und eine ordnungsgemäße Überwachung und Nachverfolgung . Der Grund für die Verwendung mehrerer Datendateien für Tempdb besteht darin, die Konflikte bei der Zuordnungsseite zu verringern und zu verringern. Es gibt zahlreiche veröffentlichte Beiträge darüber, wie diese Behauptung überwacht und entsprechende Maßnahmen ergriffen werden können. Im Folgenden finden Sie einige Ressourcen:

Auflösen von TempDB-Konflikten (Teil 1)
Auflösen von TempDB-Konflikten (Teil 2)
Analysieren von Tempdb-Konflikten
Optimieren der Tempdb-Konfiguration mit erweiterten SQL Server 2012-Ereignissen

Aber um Ihre Frage zu beantworten, nein, dies ist kein fester Bestandteil von tempdb .

Thomas Stringer
quelle