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.
In diesem Thema wird der maximale Grad an Parallelität definiert und erläutert, wie Sie diese Einstellung in SQL Server 2014 mithilfe von SQL Server Management Studio oder Transact-SQL ändern. Auf Multiprozessorcomputern, auf denen SQL Server Enterprise oder höher ausgeführt wird, können Indexanweisungen mehrere Prozessoren verwenden, um die Überprüfungs-, Sortier- und Indexvorgänge auszuführen, die der Index-Anweisung zugeordnet sind, genau wie bei anderen Abfragen. Die Anzahl der Prozessoren, die zum Ausführen einer einzelnen Index-Anweisung verwendet werden, wird durch die maximale Parallelitätskonfigurationsoption , die aktuelle Workload und die Indexstatistiken bestimmt. Die option für den maximalen Grad der Parallelität bestimmt die maximale Anzahl von Prozessoren, die bei der parallelen Planausführung verwendet werden sollen. Wenn das SQL Server-Datenbankmodul erkennt, dass das System ausgelastet ist, wird der Grad der Parallelität des Indexvorgangs automatisch reduziert, bevor die Ausführung der Anweisung beginnt. Das Datenbankmodul kann auch den Grad der Parallelität verringern, wenn die führende Schlüsselspalte eines nicht partitionierten Indexes eine begrenzte Anzahl unterschiedlicher Werte aufweist oder die Häufigkeit der einzelnen unterschiedlichen Werte erheblich variiert.
Hinweis
Parallele Indexvorgänge sind in jeder SQL Server-Edition nicht verfügbar. Weitere Informationen finden Sie unter Features Supported by the Editions of SQL Server 2014.
In diesem Themenbereich
Bevor Sie beginnen:
So legen Sie den maximalen Grad der Parallelität fest, indem Sie Folgendes verwenden:
Bevor Sie beginnen
Einschränkungen und Beschränkungen
Die Anzahl der Prozessoren, die vom Abfrageoptimierer verwendet werden, bietet in der Regel eine optimale Leistung. Vorgänge wie das Erstellen, Wiederaufbauen oder Ablegen sehr großer Indizes sind jedoch ressourcenintensiv und können für die Dauer des Indexvorgangs zu unzureichenden Ressourcen für andere Anwendungen und Datenbankvorgänge führen. Wenn dieses Problem auftritt, können Sie die maximale Anzahl von Prozessoren, die zum Ausführen der Index-Anweisung verwendet werden, manuell konfigurieren, indem Sie die Anzahl der Prozessoren beschränken, die für den Indexvorgang verwendet werden sollen.
Die MAXDOP-Indexoption überschreibt die maximale Parallelitätskonfigurationsoption nur für die Abfrage, die diese Option angibt. In der folgenden Tabelle sind die gültigen ganzzahligen Werte aufgeführt, die mit der Maximalen Parallelitätskonfigurationsoption und der MAXDOP-Indexoption angegeben werden können.
Wert BESCHREIBUNG 0 Gibt an, dass der Server abhängig von der aktuellen Systemauslastung die Anzahl der verwendeten CPUs bestimmt. Dies ist der Standardwert und die empfohlene Einstellung. 1 Unterdrückt das Generieren paralleler Pläne. Der Vorgang wird fortlaufend ausgeführt. 2 - 64 Beschränkt die Anzahl der Prozessoren auf den angegebenen Wert. Je nach aktueller Workload können weniger Prozessoren verwendet werden. Wenn ein Wert größer als die Anzahl der verfügbaren CPUs ist, wird die tatsächliche Anzahl der verfügbaren CPUs verwendet. Parallele Indexausführung und die MAXDOP-Indexoption gelten für die folgenden Transact-SQL Anweisungen:
CREATE INDEX
ALTER INDEX REBUILD
DROP INDEX (Dies gilt nur für gruppierte Indizes.)
ALTER TABLE ADD (index) CONSTRAINT
ALTER TABLE LÖSCHE (gruppierter Index) EINSCHRÄNKUNG
Die MAXDOP-Indexoption kann in der ALTER INDEX REORGANIZE-Anweisung nicht angegeben werden.
Speicheranforderungen für partitionierte Indexvorgänge, die eine Sortierung erfordern, können größer sein, wenn der Abfrageoptimierer Grad an Parallelität auf den Buildvorgang anwendet. Je höher der Grad der Parallelität ist, desto größer ist die Speicheranforderung. Weitere Informationen finden Sie unter partitionierte Tabellen und Indizes.
Sicherheit
Erlaubnisse
Erfordert ALTER-Berechtigung für die Tabelle oder Ansicht.
Verwendung von SQL Server Management Studio
So legen Sie den maximalen Grad der Parallelität für einen Index fest
Klicken Sie im Objekt-Explorer auf das Pluszeichen, um die Datenbank zu erweitern, die die Tabelle enthält, auf der Sie den maximalen Grad der Parallelität für einen Index festlegen möchten.
Erweitern Sie den Ordner Tabellen .
Klicken Sie auf das Pluszeichen, um die Tabelle zu erweitern, auf der Sie den maximalen Grad der Parallelität für einen Index festlegen möchten.
Erweitern Sie den Ordner "Indizes ".
Klicken Sie mit der rechten Maustaste auf den Index, für den Sie den maximalen Grad an Parallelität festlegen möchten, und wählen Sie "Eigenschaften" aus.
Wählen Sie unter "Seite auswählen" "Optionen" aus.
Wählen Sie den maximalen Grad der Parallelität aus, und geben Sie dann einen Wert zwischen 1 und 64 ein.
Klicke auf OK.
Verwenden von Transact-SQL
So legen Sie den maximalen Grad der Parallelität für einen vorhandenen Index fest
Stellen Sie im Objekt-Explorer eine Verbindung mit einer Datenbank-Engine-Instanz her.
Klicken Sie in der Standardleiste auf Neue Abfrage.
Kopieren Sie das folgende Beispiel, fügen Sie es in das Abfragefenster ein, und klicken Sie auf Ausführen.
USE AdventureWorks2012; GO /*Alters the IX_ProductVendor_VendorID index on the Purchasing.ProductVendor table so that, if the server has eight or more processors, the Database Engine will limit the execution of the index operation to eight or fewer processors. */ ALTER INDEX IX_ProductVendor_VendorID ON Purchasing.ProductVendor REBUILD WITH (MAXDOP=8); GO
Weitere Informationen finden Sie unter ALTER INDEX (Transact-SQL).
Festlegen des maximalen Parallelitätsgrads für einen neuen Index
Stellen Sie im Objekt-Explorer eine Verbindung mit einer Datenbank-Engine-Instanz her.
Klicken Sie in der Standardleiste auf Neue Abfrage.
Kopieren Sie das folgende Beispiel, fügen Sie es in das Abfragefenster ein, und klicken Sie auf Ausführen.
USE AdventureWorks2012; GO CREATE INDEX IX_ProductVendor_NewVendorID ON Purchasing.ProductVendor (BusinessEntityID) WITH (MAXDOP=8); GO
Weitere Informationen finden Sie unter CREATE INDEX (Transact-SQL).