Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server
Azure SQL Managed Instance
In diesem Artikel wird beschrieben, wie die Serverkonfigurationsoption cost threshold for parallelism in SQL Server mithilfe von SQL Server Management Studio oder Transact-SQL konfiguriert wird.
Informationen zum Kostenschwellenwert für Parallelität
Die cost threshold for parallelism Option gibt den Schwellenwert an, an dem SQL Server parallele Pläne auf Computern mit mehr als einem logischen Prozessor betrachtet. Die cost threshold for parallelism Option kann auf einen beliebigen Wert von 0 bis 32.767 festgelegt werden.
Die Kosten sind die Summe der geschätzten Operatorkosten in einem Abfrageplan (z. B. CPU und E/A). Es ist ein relatives Maß, das nur für die Planauswahl verwendet wird. die tatsächliche Laufzeit wird nicht gemessen.
Bestimmte Transact-SQL Komponenten können einen parallelen Plan hemmen. Beispiel: Nichtlineable skalare benutzerdefinierte Funktionen (UDFs), Tabellenvariablenänderungen und bestimmte Systemaufrufe. SQL Server wertet parallele Alternativen nur aus, wenn die geschätzten Kosten des besten seriellen Plans den cost threshold for parallelism Wert überschreiten und dann einen günstigeren parallelen Plan auswählen können.
Begrenzungen
SQL Server ignoriert den cost threshold for parallelism-Wert unter den folgenden Bedingungen:
Ihr Computer verfügt nur über einen logischen Prozessor.
Für SQL Server steht wegen der Konfigurationsoption
affinity masknur ein logischer Prozessor zur Verfügung.Die Konfigurationsoption
max degree of parallelismdes Servers ist auf1eingestellt.
Empfehlungen
Diese Option ist eine erweiterte Option und sollte nur von einem erfahrenen Datenbankexperten geändert werden.
Der Standardwert ist 5, ein Ausgangspunkt und keine Empfehlung. Auf modernen SQL Server-Systemen kann das Erhöhen einer Einstellung dazu beitragen, OLTP-Abfragen mit seriellen Plänen auszuführen. Verwenden Sie kleine Inkremente, und beobachten Sie einen vollständigen Geschäftszyklus, bevor Sie weitere Änderungen vornehmen. Führen Sie bei Bedarf Anwendungstests mit höheren und niedrigeren Werten durch, um die Anwendungsleistung zu optimieren.
Hinweis
In der Azure SQL-Datenbank können Sie nicht festlegen cost threshold for parallelism. Verwenden Sie MAXDOP, um stattdessen Parallelität zu steuern. Weitere Informationen finden Sie unter Ändern des Standard-MAXDOP in azure SQL-Datenbank und in der verwalteten Azure SQL-Instanz.
In bestimmten Fällen kann ein paralleler Plan ausgewählt werden, obwohl die Kosten für den Plan der Abfrage kleiner als der aktuelle cost threshold for parallelism Wert sind. Die Entscheidung, einen parallelen oder seriellen Plan zu verwenden, basiert auf einer Kostenschätzung, die weiter oben im Optimierungsprozess angegeben wurde. Weitere Informationen finden Sie im Handbuch zur Architektur der Abfrageverarbeitung.
Bemerkungen
Um festzustellen, ob die cost threshold for parallelism Serverkonfigurationsoption für Ihre Workload zu hoch oder zu niedrig festgelegt ist, suchen Sie nach den folgenden Indikatoren.
| Kostenschwellenwert für Parallelitätseinstellung | Description |
|---|---|
| Zu niedrig | - Zu viele CPU-Light-Abfragen werden parallel ausgeführt. - Im Abfragespeicher sind viele Pläne auf 1 gesetzt.- CXPACKET und CXCONSUMER beherrschen Die Statistik des Wartetyps. Möglicherweise sehen Sie auch THREADPOOL und SOS_SCHEDULER_YIELD-Wartezeiten. |
| Zu hoch | - Nicht genügend Abfragen der Workload, die CPU-intensiv sind, werden parallel verarbeitet, und infolgedessen ist die CPU-Auslastung höher als optimal. - SOS_SCHEDULER_YIELD dominiert die Wartetyp-Statistik. |
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
Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf einen Server, und wählen Sie Eigenschaften aus.
Wählen Sie den Knoten Erweitert aus.
Ändern Sie unter Parallelität die Option
cost threshold for parallelismin den gewünschten Wert. Geben Sie einen Wert von 0 bis 32.767 ein, oder wählen Sie diesen aus.
Verwenden von Transact-SQL
In diesem Beispiel wird gezeigt, wie Sie sp_configure verwenden, um den Wert von cost threshold for parallelism auf 20 festzulegen.
USE master;
GO
EXECUTE sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
EXECUTE sp_configure 'cost threshold for parallelism', 20;
GO
RECONFIGURE;
GO
EXECUTE sp_configure 'show advanced options', 0;
GO
RECONFIGURE;
GO
Weitere Informationen finden Sie unter Serverkonfigurationsoptionen.
Nachverfolgung: Nach dem Konfigurieren der Option „cost threshold for parallelism“
Die Einstellung tritt ohne Neustarten des Servers sofort in Kraft.