Share via


Konfigurieren der Serverkonfigurationsoption Maximale Anzahl von Arbeitsthreads

In diesem Thema wird beschrieben, wie die Serverkonfigurationsoption Max. Anzahl von Arbeitsthreads in SQL Server mithilfe von SQL Server Management Studio oder Transact-SQL konfiguriert wird. Sie können mithilfe der Option Max. Anzahl von Arbeitsthreads die Anzahl von Arbeitsthreads konfigurieren, die für SQL Server-Prozesse zur Verfügung stehen. SQL Server verwendet die systemeigenen Threaddienste der Betriebssysteme, sodass jedes Netzwerk, das gleichzeitig von SQL Server unterstützt wird, von mindestens einem Thread unterstützt wird. Ein weiterer Thread verarbeitet die Datenbank-Prüfpunkte, und ein Threadpool verarbeitet alle Benutzer. Der Standardwert für Max. Anzahl von Arbeitsthreads ist 0. Auf diese Weise kann SQL Server die Anzahl der Arbeitsthreads beim Starten automatisch konfigurieren. Die Standardeinstellung ist für die meisten Systeme am besten geeignet. Abhängig von der Konfiguration des Systems kann durch Festlegen von Max. Anzahl von Arbeitsthreads auf einen bestimmten Wert manchmal die Leistung verbessert werden.

In diesem Thema

  • Vorbereitungen:

    Einschränkungen

    Empfehlungen

    Sicherheit

  • So konfigurieren Sie die Option Maximale Anzahl von Arbeitsthreads mit:

    SQL Server Management Studio

    Transact-SQL

  • Nachverfolgung: Nach dem Konfigurieren der Option Max. Anzahl von Arbeitsthreads

Vorbereitungen

Einschränkungen

  • Wenn die tatsächliche Anzahl von Abfrageanforderungen geringer als der für Max. Anzahl von Arbeitsthreads festgelegte Wert ist, werden alle Abfrageanforderungen von einem Thread verarbeitet. Wenn die tatsächliche Anzahl von Abfrageanforderungen jedoch den für max worker threads festgelegten Wert überschreitet, erstellt SQL Server einen Pool von Arbeitsthreads, damit die Anforderung vom nächsten verfügbaren Arbeitsthread verarbeitet werden kann.

Empfehlungen

  • Diese Option ist eine erweiterte Option und sollte ausschließlich von einem erfahrenen Datenbankadministrator oder einem zertifizierten SQL Server-Techniker geändert werden.

  • Threadpools erleichtern das Optimieren der Leistung, wenn sehr viele Clients mit dem Server verbunden sind. Üblicherweise wird ein separater Betriebssystemthread für jede Abfrageanforderung erstellt. Wenn jedoch bei Hunderten von Verbindungen mit dem Server weiterhin ein Thread pro Abfrageanforderung verwendet wird, kann dabei eine große Menge an Systemressourcen verbraucht werden. Die Option Max. Anzahl von Arbeitsthreads ermöglicht SQL Server das Erstellen eines Pools mit Arbeitsthreads, der eine große Anzahl von Abfrageanforderungen versorgen kann und so zur Verbesserung der Leistung beiträgt.

  • In der folgenden Tabelle werden die automatisch konfigurierte maximale Anzahl von Arbeitsthreads für verschiedene Kombinationen von CPUs und Versionen von SQL Server dargestellt.

    Anzahl von CPUs

    32-Bit-Computer

    64-Bit-Computer

    <= 4 Prozessoren

    256

    512

    8 Prozessoren

    288

    576

    16 Prozessoren

    352

    704

    32 Prozessoren

    480

    960

    64 Prozessoren

    736

    1472

    128 Prozessoren

    4224

    4480

    256 Prozessoren

    8320

    8576

    HinweisHinweis

    Empfehlungen zur Verwendung von mehr als 64 CPUs finden Sie unter Bewährte Methoden zum Ausführen von SQL Server auf Computern mit mehr als 64 CPUs.

    VorsichtshinweisVorsicht

    1024 ist der empfohlene Wert für die maximale Anzahl von Arbeitsthreads auf einer SQL Server-Instanz, die auf einem 32-Bit-Computer ausgeführt wird.

  • Wenn alle Arbeitsthreads aktiviert sind, kann es sein, dass SQL Server bei Abfragen mit langer Ausführungszeit scheinbar nicht mehr reagiert, bis ein Arbeitsthread abgeschlossen wird und verfügbar ist. Dies ist zwar kein Fehler, aber in bestimmten Situationen unerwünscht. Wenn ein Prozess scheinbar nicht mehr reagiert und keine neuen Abfragen verarbeitet werden können, stellen Sie mithilfe der dedizierten Administratorverbindung (DAC) eine Verbindung mit SQL Server her, und brechen Sie den Prozess ab. Um diese Situation zu verhindern, erhöhen Sie den Wert für die maximale Anzahl von Arbeitsthreads.

Die Serverkonfigurationsoption Max. Anzahl von Arbeitsthreads berücksichtigt keine Threads, die für alle Systemtasks wie Verfügbarkeitsgruppen, Service Broker, Sperren-Manager und andere erforderlich sind. Wenn die Anzahl der konfigurierten Threads überschritten wird, stellt die folgende Abfrage Informationen zu den Systemtasks bereit, durch die die zusätzlichen Threads generiert wurden.

SELECT
s.session_id,
r.command,
r.status,
r.wait_type,
r.scheduler_id,
w.worker_address,
w.is_preemptive,
w.state,
t.task_state,
t.session_id,
t.exec_context_id,
t.request_id
FROM sys.dm_exec_sessions AS s
INNERJOIN sys.dm_exec_requests AS r
    ON s.session_id = r.session_id
INNER JOIN sys.dm_os_tasks AS t
    ON r.task_address = t.task_address
INNER JOIN sys.dm_os_workers AS w
    ON t.worker_address = w.worker_address
WHERE s.is_user_process = 0;

Sicherheit

Berechtigungen

Die Ausführungsberechtigungen für sp_configure ohne Parameter oder nur mit dem ersten Parameter werden standardmäßig allen Benutzern erteilt. Zum Ausführen von sp_configure mit beiden Parametern zum Ändern einer Konfigurationsoption oder zum Ausführen der RECONFIGURE-Anweisung muss einem Benutzer die ALTER SETTINGS-Berechtigung auf Serverebene erteilt worden sein. Die ALTER SETTINGS-Berechtigung ist in den festen Serverrollen sysadmin und serveradmin implizit eingeschlossen.

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Nach oben]

SQL Server Management Studio

So konfigurieren Sie die Option Max. Anzahl von Arbeitsthreads

  1. Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf einen Server, und wählen Sie Eigenschaften aus.

  2. Klicken Sie auf den Prozessoren-Knoten.

  3. Geben Sie im Feld Max. Anzahl von Arbeitsthreads einen Wert zwischen 128 und 32767 ein, oder wählen Sie einen Wert aus.

    Sie können mithilfe der Option Max. Anzahl von Arbeitsthreads die Anzahl von Arbeitsthreads konfigurieren, die SQL Server-Prozessen zur Verfügung stehen. Die Standardeinstellung für Max. Anzahl von Arbeitsthreads eignet sich für die meisten Systeme am besten. Abhängig von der Konfiguration des Systems kann die Leistung manchmal verbessert werden, indem Max. Anzahl von Arbeitsthreads auf einen niedrigeren Wert festgelegt wird.

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Nach oben]

Transact-SQL

So konfigurieren Sie die Option Max. Anzahl von Arbeitsthreads

  1. Stellen Sie eine Verbindung mit dem Database Engine (Datenbankmodul) her.

  2. Klicken Sie in der Standardleiste auf Neue Abfrage.

  3. Kopieren Sie das folgende Beispiel, fügen Sie es in das Abfragefenster ein, und klicken Sie auf Ausführen. In diesem Beispiel wird gezeigt, wie sp_configure verwendet wird, um die Option max worker threads auf 900 festzulegen.

EXEC sp_configure 'show advanced options', 1;
GO
RECONFIGURE ;
GO
EXEC sp_configure 'max worker threads', 900 ;
GO
RECONFIGURE;
GO

Weitere Informationen finden Sie unter Serverkonfigurationsoptionen.

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Nach oben]

Nachverfolgung: Nach dem Konfigurieren der Option Max. Anzahl von Arbeitsthreads

Die Änderung wird sofort wirksam, ohne dass ein Neustart von Database Engine (Datenbankmodul) erforderlich ist.

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Nach oben]

Siehe auch

Verweis

RECONFIGURE (Transact-SQL)

sp_configure (Transact-SQL)

Konzepte

Serverkonfigurationsoptionen

Diagnoseverbindung für Datenbankadministratoren