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