DetailPage-MSS-KB

Knowledge Base

Artikel-ID: 2806535 - Geändert am: Freitag, 1. Mai 2015 - Version: 3.0

 

Auf dieser Seite

Zusammenfassung

Die Option Microsoft SQL Server Option max Degree of Parallelism (MAXDOP) steuert die Anzahl der Prozessoren, die für die Ausführung einer Abfrage ein paralleler Plan verwendet werden. Diese Option bestimmt die computing und Thread-Ressourcen, die für den Plan Abfrageoperatoren verwendet werden, die die Arbeit parallel auszuführen. Je nachdem, ob SQL Server auf einem Computer symmetrisches Multiprocessing (SMP), einem non-Uniform Memory Access (NUMA) Computer oder Prozessoren Hyperthreads aktiviert eingerichtet ist müssen Sie die Option Max. Grad an Parallelität entsprechend konfigurieren. Dieser Artikel beschreibt die allgemeinen Richtlinien, die Sie verwenden können, um die Option Max. Grad an Parallelität für SQL Server konfigurieren, wenn Sie die gespeicherte Systemprozedur Sp_configure verwenden.

Die OPTION (MAXDOP) Transact-SQL-Abfrage-Hints können die Option max Degree of Parallelism-Option in den Wert derSp_configure überschreiben, wenn die Abfrage gibt diese Option an. In SQL Server 2000 wirksam die Überschreibung nur, wenn der im Hinweis angegebene Wert kleiner oder gleich dem Wert des Sp_configure ist . In SQL Server 2005 und höheren Versionen wird die Überschreibung immer wirksam. In SQL Server 2008 oder höher der MAXDOP-Wert übersteigt, die mithilfe der Ressourcenkontrolle konfiguriert wurde, verwendet das Datenbankmodul den Resource Governor MAXDOP-Wert. Alle semantischen Regeln, die mit der Option max Degree of Parallelism-Option verwendet werden werden bei Verwendung des Abfragehinweises MAXDOP zur Verfügung. Die anderen zwei Optionen, die außer Kraft setzen oder die MAXDOP-Einstellung auswirken können, lauten folgendermaßen:
  • Weiche NUMA
  • Parallele index

Weitere Informationen

Hinweis Die Option max Degree of Parallelism -Konfigurationsoption ist keine Beschränkung der Anzahl der Prozessoren, die SQL Server verwendet. Verwenden Sie die Konfigurationsoption Affinity Mask , konfigurieren Sie die Anzahl der Prozessoren, die SQL Server verwendet.

Verwenden Sie die folgenden Richtlinien, wenn Sie die MAXDOPvalue konfigurieren.

SQL Server 2005 und höheren Versionen

Tabelle minimierenTabelle vergrößern
Server mit einzelnen NUMA-KnotenWeniger als 8 logische ProzessorenHalten Sie MAXDOP auf oder unter der Anzahl der logischen Prozessoren
Server mit einzelnen NUMA-KnotenGrößer als 8 logische ProzessorenBehalten Sie MAXDOP auf 8
Server mit mehreren NUMA-KnotenWeniger als 8 logische Prozessoren pro NUMA-KnotenHalten Sie MAXDOP auf oder unter der Anzahl der logischen Prozessoren pro NUMA-Knoten
Server mit mehreren NUMA-KnotenGrößer als 8 logische Prozessoren pro NUMA-KnotenBehalten Sie MAXDOP auf 8



Hinweis
dieselben Richtlinien verwenden, wenn Sie die Option max Degree of Parallelism-Option für die Ressourcenkontrolle Arbeitsauslastungsgruppen festlegen.

Darüber hinaus kann der maximale Wert von 8, der in diesen Leitlinien erwähnt wird für typische SQL Server-Aktivität und den Aufwand für die Exchange-Operatoren, die in parallelen Abfrageplänen verwendet werden. Sie können diesen Maximalwert abhängig von Ihrer bestimmte Anwendungsmuster und die gleichzeitige Aktivitäten auf der Instanz von SQL Server variieren. Betrachten Sie beispielsweise die folgenden Situationen:
  • Haben Sie sehr kleine Anzahl von Abfragen, die im Vergleich zur Anzahl der Prozessoren gleichzeitig ausgeführt werden, können Sie den MAXDOP-Wert auf einen höheren Wert festlegen. Sie können z. B. den MAXDOP-Wert auf 16 festgelegt.
  • Wenn Sie eine sehr große Anzahl von Abfragen, die im Vergleich zur Anzahl der Prozessoren gleichzeitig ausgeführt werden, können Sie den MAXDOP-Wert auf einen niedrigeren Wert festlegen. Sie können z. B. den MAXDOP-Wert auf 4 festlegen.
Hinweis Alle Werte, die Sie erwägen, sollten gründlich getestet werden, gegen bestimmte Anwendungsaktivität oder Muster von Abfragen, bevor Sie diesen Wert auf einem Produktionsserver implementieren.

SQL Server 2000 und früheren Versionen

Wenn SQL Server einen seriellen Plan verwendet wird, wird es nur über einen Prozessor verwenden. Wenn SQL Server Parallelität verwendet, müssen sie alle konfigurierten Prozessoren (wie durch die MAXDOP Query Hint Konfiguration festgelegt) für die Ausführung von einem parallelen Plan verwenden. Zum Beispiel wenn Sie MAXDOP = 0 auf einem 32-Wege-Server SQL Server versucht, alle 32 Prozessoren zu verwenden, auch wenn 7 Prozessoren möglicherweise eine Arbeit mehr effizient im Vergleich mit einem seriellen Plan, der nur über einen Prozessor verwendet. Aufgrund dieses Verhaltens nichts überwiegen Wenn SQL Server den parallelen Plan verwendet, und wenn Sie auf einen Höchstwert von 8, nicht den MAXDOP-Abfragehinweis beschränken die Zeit, die von SQL Server erforderlich ist, alle Prozessoren auf einem High-End-Server koordiniert die Vorteile der Verwendung eines parallelen Plans.

Die MAXDOP-Einstellung gilt für jeden Schritt des Plans. Jeder Schritt verwendet eine CPU oder der Anzahl der CPUs, die durch MAXDOP und niemals irgendetwas dazwischen angegeben wird. Wenn Schritte parallel ausgeführt werden soll, darf die Anzahl der Threads, die von der Abfrage verwendet werden die MAXDOP-Einstellung.

Die Definition der MAXDOP finden Sie im Thema "Max. Grad der Parallelität Option" oder das Thema "Degree of Parallelism" in SQL Server.

Zum Verständnis der Funktionsweise von Parallelität finden Sie im Abschnitt "Parallele Abfrageverarbeitung" unter dem Thema "Architektur" in der SQL Server-Onlinedokumentation.

Zusätzliche Informationen

Weitere Informationen zu parallelen Abfragen finden Sie auf der folgenden Microsoft Developer Network (MSDN)-Website:
Grad der Parallelität (http://msdn.microsoft.com/en-us/library/ms188611.aspx )
Best Practices-Informationen, wenn Sie eine Instanz von SQL Server auf Computern, die mehr als 64 CPUs verfügen ausgeführt werden, finden Sie die folgenden SQL Server-Onlinedokumentation:
Bewährte Methoden zum Ausführen von SQL Server auf Computern mit mehr als 64 CPUs (http://msdn.microsoft.com/en-us/library/ee210547(SQL.105).aspx)
Für die Hyper-Threading-fähigen Prozessoren ausgeführten Instanzen von SQL Server folgen Sie den Empfehlungen im folgenden Artikel der Microsoft Knowledge Base:
322385  (http://support.microsoft.com/kb/322385/ ) Unterstützung von SQL Server in einer Umgebung mit hyper-Threading
Hinweis Diese Empfehlung gelten möglicherweise nicht für neuere Prozessorchips wie die der Intel Nehalem-Produktfamilie.

Weitere Informationen über die Anzahl der Prozessoren, die von SQL Server verwendet werden und die Anzahl von NUMA-Knoten, die von SQL Server erkannt werden, verwenden Sie Dynamic Management Views dm_os_sys_info und dm_os_nodes. Weitere Informationen über die MAXDOP-Einstellung, die mit Resource Governor erzwungen wird, überprüfen Sie die Informationen in der Dynamic Management View dm_resource_governor_workload_groups und den folgenden Beitrag im Blog des SQL Server-Support-Team:

Werden Servereinstellung "Max Degree of Parallelism", Resource Governor MAX_DOP und Abfragehinweises MAXDOP-, die eine SQL Server sollte verwendet? (http://blogs.msdn.com/b/psssql/archive/2015/04/28/server-s-max-degree-of-parallelism-setting-resource-governor-s-max-dop-and-query-hint-maxdop-which-one-should-sql-server-use.aspx)

Weitere Informationen zu den Produkten und Tools, mit die automatisch prüfen, ob diese Bedingung auf der Instanz von SQL Server und auf den Versionen von SQL Server finden Sie in der folgende Tabelle:
Tabelle minimierenTabelle vergrößern
Regel-softwareRegel-TitelRegelbeschreibungProduktversionen, für die die Regel ausgewertet wird
SQL Server 2008 R2 Best Practice Analyzer (SQL Server 2008 R2 BPA)Grad der Parallelität ist nicht auf den empfohlenen Wert festgelegt.Die SQL Server 2008 R2 Best Practice Analyzer (SQL Server 2008 R2 BPA) enthält eine Regel, um diese Bedingungen zu erkennen, der entsprechende Wert für die Option max Degree of Parallelism-Option zusammen mit der Anzahl der CPUs in einem NUMA-Knoten sowie die Konfiguration der Ressourcenkontrolle Arbeitsauslastung für MAXDOP nicht konfiguriert ist. SQL Server 2008 R2 BPA unterstützt SQL Server 2008 und SQL Server 2008 R2.

Wenn Sie BPA-Tool ausführen und eine Warnung "Datenbank-Engine - ist Grad an Parallelität nicht auf empfohlene Wert festgelegt" auftreten, vergleichen Sie den Wert derOption max Degree of Parallelism-Option und den Resource Governor Arbeitsauslastung MAXDOP-Wert mit den empfohlenen Werten, die im Abschnitt "Zusammenfassung" und "Weitere Informationen" angegeben sind.
SQL Server 2008, SQL Server 2008 R2
SQL Server 2012 Best Practice Analyzer (BPA für SQL Server 2012)Grad der Parallelität ist nicht auf den empfohlenen Wert festgelegt.SQL Server 2012 Best Practice Analyzer (BPA für SQL Server 2012) enthält eine Regel, um diese Bedingungen zu erkennen, der entsprechende Wert für die Option max Degree of Parallelism-Option zusammen mit der Anzahl der CPUs in einem NUMA-Knoten sowie die Konfiguration der Ressourcenkontrolle Arbeitsauslastung für MAXDOP nicht konfiguriert ist.

Wenn Sie BPA-Tool ausführen und eine Warnung "Datenbank-Engine - ist Grad an Parallelität nicht auf empfohlene Wert festgelegt" auftreten, vergleichen Sie den Wert derOption max Degree of Parallelism-Option und den Resource Governor Arbeitsauslastung MAXDOP-Wert mit den empfohlenen Werten, die im Abschnitt "Zusammenfassung" und "Weitere Informationen" angegeben sind.
SQL Server 2012

Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft SQL Server 2012 Enterprise
  • Microsoft SQL Server 2012 Standard
  • Microsoft SQL Server 2012 Developer
  • Microsoft SQL Server 2012 Express
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Datacenter
  • Microsoft SQL Server 2008 R2 Express
  • Microsoft SQL Server 2008 R2 Express with Advanced Services
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Enterprise Evaluation
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Express
  • Microsoft SQL Server 2008 Express with Advanced Services
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Express Edition with Advanced Services
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2000 Enterprise Evaluation Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 Developer Edition
  • Microsoft SQL Server 2014 Business Intelligence
  • Microsoft SQL Server 2014 Developer
  • Microsoft SQL Server 2014 Enterprise
  • Microsoft SQL Server 2014 Enterprise Core
  • Microsoft SQL Server 2014 Express
  • Microsoft SQL Server 2014 Standard
  • Microsoft SQL Server 2014 Web
Keywords: 
kbinfo kbmt KB2806535 KbMtde
Maschinell übersetzter ArtikelMaschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell übersetzt und wird dann möglicherweise mithilfe des Community Translation Framework (CTF) von Mitgliedern unserer Microsoft Community nachbearbeitet. Weitere Informationen zu CTF finden Sie unter http://support.microsoft.com/gp/machine-translation-corrections/de.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 2806535  (http://support.microsoft.com/kb/2806535/en-us/ )
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.
Freigeben
Weitere Supportoptionen
Microsoft Community-Supportforen
Kontaktieren Sie uns direkt
Zertifizierten Partner finden
Microsoft Store