Bewährte Methoden zum Ausführen von SQL Server auf Computern mit mehr als CPUs
Dieses Thema enthält Informationen zu bewährten Methoden, die beim Ausführen einer Instanz von SQL Server auf Computern, die über mehr als 64 CPUs verfügen, berücksichtigt werden sollten.
Zuweisen von Hardwarethreads mit CPUs
Verwenden Sie nicht die Serverkonfigurationsoptionen affinity mask und affinity64 mask, um Prozessoren an bestimmte Threads zu binden. Diese Optionen sind auf 64 CPUs beschränkt. Verwenden Sie stattdessen ALTER SERVER CONFIGURATION (Transact-SQL).
Verwalten der Größe der Transaktionsprotokolldatei
Verlassen Sie sich nicht auf automatische Vergrößerung, um die Transaktionsprotokolldatei zu vergrößern. Das Vergrößern des Transaktionsprotokolls muss ein serieller Prozess sein. Das Erweitern des Protokolls kann bis zum Abschließen der Protokollerweiterung verhindern, dass Transaktionsschreibvorgänge fortgeführt werden. Weisen Sie stattdessen den Protokolldateien im Voraus Speicherplatz zu, indem Sie die Dateigröße auf einen Wert festlegen, der hoch genug ist, um der typischen Arbeitsauslastung in der Umgebung gerecht zu werden.
Festlegen des maximalen Parallelitätsgrads für Indexvorgänge
Die Leistung von Indexvorgängen wie das Erstellen oder erneute Erstellen von Indizes kann auf Computern mit zahlreichen CPUs verbessert werden, indem das Wiederherstellungsmodell der Datenbank entweder auf das massenprotokollierte oder das einfache Wiederherstellungsmoddell festgelegt wird. Diese Indexvorgänge können umfassende Protokollaktivitäten nach sich ziehen, und Protokollkonflikte können sich auf die beste Auswahl des Parallelitätsgrades durch SQL Server auswirken.
Passen Sie für diese Vorgänge außerdem ggf. die Einstellung bezüglich des maximalen Grads an Parallelität (MAXDOP) an. Die folgenden Richtlinien basieren auf internen Tests und sind allgemeine Empfehlungen. Testen Sie mehrere verschiedene MAXDOP-Einstellungen, um die optimale Einstellung für die vorhandene Umgebung zu ermitteln.
Beschränken Sie den Wert der Option für den maximalen Grad an Parallelität für das vollständige Wiederherstellungsmodell auf höchstens acht.
Legen Sie als Wert für die Option Max. Grad an Parallelität ggf. acht oder höher fest.
Bei Servern, für die NUMA konfiguriert wurde, sollte der maximale Grad an Parallelität die Anzahl von CPUs nicht überschreiten, die den einzelnen NUMA-Knoten zugewiesen werden. Dies liegt daran, dass für die Abfrage mit höherer Wahrscheinlichkeit lokaler Speicher vom 1 NUMA-Knoten verwendet wird, wodurch die Zugriffszeiten auf den Speicher verringert werden.
Für Server, auf denen Hyperthreading aktiviert wurde und die bis einschließlich 2009 hergestellt wurden, sollte der MAXDOP-Wert nicht die Anzahl der physischen Prozessoren überschreiten.
Weitere Informationen zur max degree of parallelism-Option finden Sie unter Grad der Parallelität.
Festlegen der maximalen Anzahl von Arbeitsthreads
Legen Sie die maximale Anzahl von Arbeitsthreads immer auf einen höheren Wert als die Einstellung für den maximalen Grad an Parallelität fest. Die Anzahl der Arbeitsthreads muss immer auf einen Wert festgelegt werden, der mindestens das Siebenfache der Anzahl von CPUs beträgt, die auf dem Server vorhanden sind. Weitere Informationen finden Sie unter max worker threads (Option).
Verwenden der SQL-Ablaufverfolgung und von SQL Server Profiler
Es wird davon abgeraten, die SQL-Ablaufverfolgung und den SQL Server Profiler in einer Produktionsumgebung verwenden. Der Aufwand zum Ausführen dieser Tools nimmt mit zunehmender Anzahl von CPUs zu. Wenn Sie die SQL-Ablaufverfolgung in einer Produktionsumgebung verwenden müssen, sollten Sie die Anzahl der Ablaufverfolgungsereignisse auf ein Minimum beschränken. Erstellen Sie für jedes Ablaufverfolgungsereignis ein Profil, und führen Sie einen Auslastungstest durch. Vermeiden Sie es, Ereignisse zu kombinieren, die die Leistung stark beeinträchtigen.
Festlegen der Anzahl von tempdb-Datendateien
In der Regel sollte die Anzahl der tempdb-Datendateien mit der Anzahl der CPUs übereinstimmen. Sie können den Aufwand für die Datenbankverwaltung jedoch reduzieren, indem Sie die Parallelitätsanforderungen von tempdb sorgfältig überdenken. Wenn ein System beispielsweise über 64 CPUs verfügt und tempdb in der Regel nur von 32 Abfragen verwendet wird, lässt sich keine Leistungsverbesserung erzielen, indem die Anzahl der tempdb-Dateien auf 64 erhöht wird. Weitere Informationen finden Sie unter Optimieren der Leistung von 'tempdb'.
SQL Server-Komponenten, die mehr als 64 CPUs verwenden können
In der folgenden Tabelle sind SQL Server-Komponenten aufgeführt, und es wird angegeben, ob sie mehr als 64 CPUs verwenden können.
Prozessname |
Ausführbares Programm |
Verwenden von mehr als 64 CPUs |
---|---|---|
SQL Server Database Engine (Datenbankmodul) |
Sqlserver.exe |
Ja |
Reporting Services |
Rs.exe |
Nein |
Analysis Services |
As.exe |
Nein |
Integration Services |
Is.exe |
Nein |
Service Broker |
Sb.exe |
Nein |
Volltextsuche |
Fts.exe |
Nein |
SQL Server-Agent |
Sqlagent.exe |
Nein |
SQL Server Management Studio |
Ssms.exe |
Nein |
SQL Server-Setup |
Setup.exe |
Nein |
Siehe auch