Freigeben über


Serverkonfiguration: Kostenschwellenwert für Parallelität

Gilt für: SQL Server

In diesem Artikel wird beschrieben, wie Sie die cost threshold for parallelism Serverkonfigurationsoption in SQL Server mithilfe von SQL Server Management Studio oder Transact-SQL konfigurieren. Die cost threshold for parallelism Option gibt den Schwellenwert an, an dem SQL Server parallele Pläne für Abfragen erstellt und ausführt. SQL Server erstellt und führt einen parallelen Plan für eine Abfrage nur aus, wenn die geschätzten Kosten für die Ausführung eines seriellen Plans für dieselbe Abfrage höher als der in cost threshold for parallelism. Die Kosten beziehen sich auf die geschätzten Kosten, die für das Ausführen des seriellen Plans bei einer bestimmten Hardwarekonfiguration anfallen, und sie stellen keine Einheit der Zeit dar. Die cost threshold for parallelism Option kann auf einen beliebigen Wert zwischen 0 und 32767 festgelegt werden.

Begrenzungen

Die Kosten beziehen sich auf eine abstrakte Kosteneinheit und nicht auf eine Einheit der geschätzten Zeit. Nur für symmetrische Multiprozessoren festgelegt cost threshold for parallelism .

SQL Server ignoriert den cost threshold for parallelism Wert unter den folgenden Bedingungen:

  • Ihr Computer verfügt nur über einen logischen Prozessor.

  • Aufgrund der affinity mask Konfigurationsoption ist nur ein einzelner logischer Prozessor für SQL Server verfügbar.

  • Die max degree of parallelism Option ist auf 1.

Ein logischer Prozessor ist die grundlegende Einheit von Prozessorhardware, die dem Betriebssystem ermöglicht, einen Task weiterzuleiten oder einen Threadkontext auszuführen. Jeder logische Prozessor kann an einem bestimmten Zeitpunkt nur einen Threadkontext ausführen. Der Prozessorkern ist die Schaltung, die Anweisungen decodiert und ausführt. Ein Prozessorkern kann einen oder mehrere logische Prozessoren enthalten. Die folgende Transact-SQL-Abfrage kann zum Abrufen von CPU-Informationen für das System verwendet werden.

SELECT (cpu_count / hyperthread_ratio) AS PhysicalCPUs,
       cpu_count AS logicalCPUs
FROM sys.dm_os_sys_info;

Empfehlungen

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

In bestimmten Fällen kann ein paralleler Plan ausgewählt werden, obwohl der Kostenplan der Abfrage kleiner als der aktuelle cost threshold for parallelism Wert ist. Dieser Fall kann eintreten, wenn die Entscheidung zum Verwenden eines parallelen oder seriellen Plans auf einer Kostenschätzung basiert, die zu einem früheren Zeitpunkt im Optimierungsprozess bereitgestellt wurde. Weitere Informationen finden Sie im Handbuch zur Architektur der Abfrageverarbeitung.

Obwohl der Standardwert 5 für die meisten Systeme ausreichend ist, kann ein anderer Wert geeignet sein. Führen Sie bei Bedarf Anwendungstests mit höheren und niedrigeren Werten durch, um die Anwendungsleistung zu optimieren.

Berechtigungen

Die Ausführungsberechtigungen für sp_configure ohne Parameter oder nur mit dem ersten Parameter werden standardmäßig allen Benutzern erteilt. Um sp_configure mit beiden Parametern auszuführen und eine Konfigurationsoption zu ändern oder die RECONFIGURE-Anweisung auszuführen, benötigt ein Benutzer die ALTER SETTINGS-Berechtigung auf Serverebene. Die ALTER SETTINGS-Berechtigung ist implizit in den festen Serverrollen sysadmin und serveradmin enthalten.

Verwenden von SQL Server Management Studio

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

  2. Wählen Sie den Knoten Erweitert aus.

  3. Ändern Sie unter "Parallelität" die cost threshold for parallelism Option auf den gewünschten Wert. Geben Sie einen Wert zwischen 0 und 32767 ein bzw. wählen Sie diesen aus.

Verwenden von Transact-SQL

In diesem Beispiel wird gezeigt, wie sp_configure verwendet wird, um den Wert der Option cost threshold for parallelism auf 10festzulegen.

USE master;
GO

EXECUTE sp_configure 'show advanced options', 1;
GO

RECONFIGURE;
GO

EXECUTE sp_configure 'cost threshold for parallelism', 10;
GO

RECONFIGURE;
GO

EXECUTE sp_configure 'show advanced options', 0;
GO

RECONFIGURE;
GO

Weitere Informationen finden Sie unter Serverkonfigurationsoptionen.

Nachverfolgung: Nachdem Sie den Kostenschwellenwert für die Parallelitätsoption konfiguriert haben

Die Einstellung tritt ohne Neustarten des Servers sofort in Kraft.