Konfigurieren von „cost threshold for parallelism“ (Serverkonfigurationsoption)

Gilt für:SQL Server

In diesem Artikel wird beschrieben, wie die Serverkonfigurationsoption Kostenschwellenwert für Parallelität in SQL Server mithilfe von SQL Server Management Studio oder Transact-SQL konfiguriert wird. Mit der Option Kostenschwellenwert für Parallelität geben Sie den Schwellenwert an, bei 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 dann aus, wenn die geschätzten Kosten für das Ausführen eines seriellen Plans für dieselbe Abfrage höher liegen als der Wert, der in Kostenschwellenwert für Parallelitätfestgelegt wurde. 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 Option Kostenschwellenwert für Parallelität 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. Legen Sie die Option cost threshold for parallelism nur auf SMP-Systemen (Symmetric Multiprocessor) fest.

SQL Server ignoriert den Wert von Kostenschwellenwert für Parallelität unter den folgenden Bedingungen:

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

  • Für SQL Server steht wegen der Konfigurationsoption Affinitätsmaske nur ein logischer Prozessor zur Verfügung.

  • Die Option Max. Grad an Parallelität ist auf den Wert 1 festgelegt.

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 Schaltungstechnik, mit der Anweisungen decodiert und ausgeführt werden können. Ein Prozessorkern enthält möglicherweise einen oder mehrere logische Prozessoren. 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 unter dem aktuellen Wert der Option Kostenschwellenwert für Parallelität liegt. 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.

  • Der Standardwert von 5 ist zwar für die meisten Systeme angemessen, in einigen Fällen eignet sich jedoch ein anderer Wert besser. 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. 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 eingeschlossen.

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. Legen Sie unter Parallelitätfür die Option Kostenschwellenwert für Parallelität den gewünschten Wert fest. 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
EXEC sp_configure 'show advanced options', 1;
GO
RECONFIGURE
GO
EXEC sp_configure 'cost threshold for parallelism', 10;
GO
RECONFIGURE
GO

Weitere Informationen finden Sie unter Serverkonfigurationsoptionen (SQL Server).

Nachverfolgung: Nach dem Konfigurieren der Option Kostenschwellenwert für Parallelität

Die Einstellung tritt ohne Neustarten des Servers sofort in Kraft.