Serverkonfiguration: max. Grad der Parallelität
Gilt für: SQL Server
In diesem Artikel wird beschrieben, wie Sie die max degree of parallelism
-Serverkonfigurationsoption (MAXDOP) in SQL Server mit SQL Server Management Studio, Azure Data Studio oder Transact-SQL konfigurieren. Wenn eine Instanz von SQL Server auf einem Computer mit mehreren Mikroprozessoren oder CPUs ausgeführt wird, erkennt die Datenbank-Engine, ob Parallelität verwendet werden kann. Mit dem Grad der Parallelität wird die Anzahl der Prozessoren festgelegt, die zur Ausführung einer einzelnen Anweisung für jede Ausführung paralleler Pläne verwendet werden. Sie können mithilfe der max degree of parallelism
-Option die Anzahl der Prozessoren beschränken, die für die Ausführung paralleler Pläne verwendet werden. Weitere Details zum festgelegten max degree of parallelism
Grenzwert finden Sie im Abschnitt "Überlegungen " auf dieser Seite. SQL Server berücksichtigt die Ausführung paralleler Pläne für Abfragen, DDL-Indizierungsvorgänge (Data Definition Language, DDL), parallele Einfügevorgänge, Onlineausführung von ALTER COLUMN, parallele Sammlung von Statistiken sowie die statische und keysetgesteuerte Cursorauffüllung.
SQL Server 2019 (15.x) hat automatische Empfehlungen zum Festlegen der max degree of parallelism
Serverkonfigurationsoption basierend auf der Anzahl der Prozessoren eingeführt, die während des Installationsprozesses verfügbar sind. Auf der Setupbenutzeroberfläche können Sie entweder die empfohlenen Einstellungen übernehmen oder Ihren eigenen Wert eingeben. Weitere Informationen finden Sie unter Konfiguration der Datenbank-Engine – Seite „MaxDOP“.
In Azure SQL-Datenbank und Azure SQL verwaltete Instanz ist 8
die Standardeinstellung "MAXDOP" für jede neue einzelne Datenbank, flexible Pooldatenbank und verwaltete Instanz. In Azure SQL-Datenbank wird die MAXDOP
Datenbankbereichskonfiguration auf .8
In Azure SQL verwaltete Instanz ist die max degree of parallelism
Serverkonfigurationsoption auf .8
Weitere Informationen zu „MAXDOP“ in Azure SQL-Datenbank finden Sie unter Konfigurieren von „Max. Grad an Parallelität" (MAXDOP) in Azure SQL-Datenbank.
Überlegungen
Diese Option ist eine erweiterte Option und sollte ausschließlich von einem erfahrenen Datenbankadministrator oder einem zertifizierten SQL Server -Experten geändert werden.
Wenn die Option „Affinitätsmaske“ nicht auf den Standardwert festgelegt ist, steht SQL Server auf Systemen mit symmetrischem Multiprocessing (SMP) möglicherweise nur eine beschränkte Anzahl an Prozessoren zur Verfügung.
Durch die Einstellung max degree of parallelism
kann 0
SQL Server alle verfügbaren Prozessoren bis zu 64 Prozessoren verwenden. Dies ist jedoch in den meisten Fällen nicht der empfohlene Wert. Weitere Informationen zu den empfohlenen Werten für den maximalen Parallelitätsgrad finden Sie im Abschnitt Empfehlungen auf dieser Seite.
Legen Sie max degree of parallelism
auf 1
fest, um das Generieren paralleler Pläne zu unterdrücken. Legen Sie den Wert auf eine Zahl zwischen 1 und 32767 fest, um die maximale Anzahl von Prozessorkernen anzugeben, die während einer einzelnen Abfrageausführung verwendet werden können. Wenn ein Wert angegeben wird, der über der Anzahl der verfügbaren Prozessoren liegt, wird die tatsächliche Anzahl der Prozessoren verwendet. Verfügt der Computer nur über einen Prozessor, wird der Wert von max degree of parallelism
ignoriert.
Der Grenzwert für den maximalen Parallelitätsgrad wird taskbezogen festgelegt. Dieser Grenzwert gilt nicht pro Anforderung oder pro Abfrage. Dies bedeutet, dass während einer parallelen Abfrageausführung eine einzelne Anforderung mehrere Aufgaben bis zum MAXDOP-Grenzwert speichern kann, und jede Aufgabe verwendet einen Worker und einen Planer. Weitere Informationen finden Sie im Abschnitt "Parallele Vorgänge planen" im Leitfaden zur Thread- und Aufgabenarchitektur.
Sie können den Serverkonfigurationswert für den maximalen Parallelitätsgrad außer Kraft setzen:
- Verwenden Sie auf Abfrageebene die
MAXDOP
Abfragehinweise oder Abfragespeicher Hinweise. - Auf Datenbankebene mithilfe der
MAXDOP
Datenbankbereichskonfiguration. - Verwenden Sie auf Arbeitsauslastungsebene die
MAX_DOP
GRUPPE "WORKLOAD ERSTELLEN".
Indizierungsoperationen, bei denen ein Index erstellt oder neu aufgebaut wird bzw. an deren Ende ein gruppierter Index steht, können ressourcenintensiv sein. In Indizierungsoperationen kann der Wert "Max. Grad an Parallelität" überschrieben werden; geben Sie hierzu die Indexoption MAXDOP in der Indexanweisung an. Der Wert MAXDOP wird zur Ausführungszeit auf die Anweisung angewendet und nicht in den Indexmetadaten gespeichert. Weitere Informationen finden Sie unter Konfigurieren von Parallelindexvorgängen.
Zusätzlich zu Abfragen und Indexvorgängen steuert diese Option auch die Parallelität von DBCC CHECKTABLE
, und DBCC CHECKDB
DBCC CHECKFILEGROUP
. Sie können Pläne für die parallele Ausführung für diese Anweisungen deaktivieren, und zwar mithilfe des Ablaufverfolgungsflags 2528. Weitere Informationen finden Sie unter Trace Flag 2528.
In SQL Server 2022 (16.x) wurde das Feedback zum Grad an Parallelität (Degree of Parallelism, DOP) eingeführt, ein neues Feature, um die Abfrageleistung zu verbessern, indem Parallelitätsineffizienzen basierend auf verstrichener Zeit und Wartezeiten für wiederholte Abfragen identifiziert werden. DOP-Feedback ist Teil der intelligenten Abfrageverarbeitungs-Feature-Familie und richtet sich an die suboptimale Verwendung von Parallelismus bei wiederholten Abfragen. Informationen zum DOP-Feedback finden Sie unter Feedback zum Grad an Parallelität (DOP).
Empfehlungen
In SQL Server 2016 (13.x) und höheren Versionen werden während des Dienst Datenbank-Engine starts mehr als acht physische Kerne pro NUMA-Knoten oder Socket beim Start erkannt, werden Soft-NUMA-Knoten standardmäßig automatisch erstellt. Datenbank-Engine platziert logische Prozessoren aus dem gleichen physischen Kern in verschiedene Soft-NUMA-Knoten. Die Empfehlungen in der folgenden Tabelle zielen darauf ab, alle Arbeitsthreads einer parallelen Abfrage innerhalb desselben Soft-NUMA-Knotens beizubehalten. Dadurch wird die Leistung der Abfragen und die Verteilung von Arbeitsthreads über die NUMA-Knoten für die Workload verbessert. Weitere Informationen finden Sie unter Soft-NUMA (SQL Server).
Verwenden Sie in SQL Server 2016 (13.x) und höheren Versionen die folgenden Richtlinien, wenn Sie den max degree of parallelism
Serverkonfigurationswert konfigurieren:
Serverkonfiguration | Anzahl der Prozessoren | Anleitungen |
---|---|---|
Server mit einzelnem NUMA-Knoten | Weniger als oder gleich 8 logische Prozessoren | MaxDOP bei oder unter der Anzahl der logischen Prozessoren beibehalten |
Server mit einzelnem NUMA-Knoten | Mehr als 8 logische Prozessoren | Belassen Sie MAXDOP bei 8 |
Server mit mehreren NUMA-Knoten | Weniger als oder gleich 16 logische Prozessoren pro NUMA-Knoten | MaxDOP bei oder unter der Anzahl der logischen Prozessoren pro NUMA-Knoten beibehalten |
Server mit mehreren NUMA-Knoten | Mehr als 16 logische Prozessoren pro NUMA-Knoten | Sorgen Sie dafür, dass MAXDOP der Hälfte der logischen Prozessoren pro NUMA-Knoten mit einem MAX-Wert von 16 entspricht. |
NUMA-Knoten in der vorherigen Tabelle bezieht sich auf Soft-NUMA-Knoten, die automatisch von SQL Server 2016 (13.x) und höheren Versionen oder hardwarebasierte NUMA-Knoten erstellt werden, wenn Soft-NUMA deaktiviert ist.
Verwenden Sie dieselben Richtlinien, wenn Sie die Option „Max. Grad an Parallelität“ für Resource Governor-Arbeitsauslastungsgruppen festlegen. Weitere Informationen finden Sie unter CREATE WORKLOAD GROUP.
SQL Server 2014 und ältere Versionen
Befolgen Sie für SQL Server 2008 (10.0.x) bis SQL Server 2014 (12.x) die folgenden Richtlinien, wenn Sie den max degree of parallelism
-Serverkonfigurationswert konfigurieren:
Serverkonfiguration | Anzahl der Prozessoren | Anleitungen |
---|---|---|
Server mit einzelnem NUMA-Knoten | Weniger als oder gleich 8 logische Prozessoren | MaxDOP bei oder unter der Anzahl der logischen Prozessoren beibehalten |
Server mit einzelnem NUMA-Knoten | Mehr als 8 logische Prozessoren | Belassen Sie MAXDOP bei 8 |
Server mit mehreren NUMA-Knoten | Weniger als oder gleich 8 logische Prozessoren pro NUMA-Knoten | MaxDOP bei oder unter der Anzahl der logischen Prozessoren pro NUMA-Knoten beibehalten |
Server mit mehreren NUMA-Knoten | Mehr als 8 logische Prozessoren pro NUMA-Knoten | Belassen Sie MAXDOP bei 8 |
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 oder Azure Data Studio
Installieren Sie in Azure Data Studio die Database Admin Tool Extensions for Windows
Erweiterung, oder verwenden Sie die folgende T-SQL-Methode.
Diese Optionen ändern die MAXDOP
Instanz.
Klicken Sie im Object Explorer mit der rechten Maustaste auf die gewünschte Instanz, und wählen Sie Eigenschaften aus.
Wählen Sie den Knoten Erweitert aus.
Wählen Sie im Feld Max. Grad an Parallelität die maximale Anzahl der Prozessoren aus, die bei der Ausführung paralleler Pläne verwendet werden sollen.
Verwenden von Transact-SQL
Stellen Sie mit SQL Server Management Studio oder Azure Data Studio eine Verbindung zur Database Engine her.
Klicken Sie in der Standardleiste auf Neue Abfrage.
Kopieren Sie das folgende Beispiel in das Abfragefenster, und klicken Sie dann auf Ausführen. In diesem Beispiel wird gezeigt, wie sp_configure verwendet wird, um die Option
max degree of parallelism
auf16
festzulegen.USE master; GO EXECUTE sp_configure 'show advanced options', 1; GO RECONFIGURE WITH OVERRIDE; GO EXECUTE sp_configure 'max degree of parallelism', 16; GO RECONFIGURE WITH OVERRIDE; GO EXECUTE sp_configure 'show advanced options', 0; GO RECONFIGURE; GO
Weitere Informationen finden Sie unter Serverkonfigurationsoptionen.
Nachverfolgung: Nachdem Sie den maximalen Grad der Parallelitätsoption konfiguriert haben
Die Einstellung tritt ohne Neustarten des Servers sofort in Kraft.
Zugehöriger Inhalt
- Intelligente Abfrageverarbeitung in SQL-Datenbanken
- Leitfaden zur Architektur der Abfrageverarbeitung
- DBCC TRACEON – Ablaufverfolgungsflags (Transact-SQL)
- Abfragespeicherhinweise
- Abfragehinweise (Transact-SQL)
- Abfragehinweis „USE HINT“
- ALTER DATABASE SCOPED CONFIGURATION (Transact-SQL)
- Affinitätsmaske (Serverkonfigurationsoption)
- Server-Konfigurationsoptionen
- Handbuch zur Architektur der Abfrageverarbeitung
- Handbuch zur Thread- und Taskarchitektur
- sp_configure (Transact-SQL)
- Festlegen von Indexoptionen
- Feedback zum Grad der Parallelität
- RECONFIGURE (Transact-SQL)
- Überwachen und Optimieren der Leistung
- Konfigurieren von Parallelindexvorgängen