Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Baza danych SQL w usłudze Microsoft Fabric
W tym artykule zdefiniowano maksymalny stopień równoległości i wyjaśniono, jak zmodyfikować to ustawienie w programie SQL Server przy użyciu programu SQL Server Management Studio lub języka Transact-SQL.
W systemach wieloprocesorowych z uruchomionym programem SQL Server Enterprise lub nowszym instrukcje indeksu mogą używać wielu procesorów (PROCESORów) do wykonywania operacji skanowania, sortowania i indeksowania skojarzonych z instrukcją indeksu, podobnie jak w przypadku innych zapytań. Liczba procesorów CPU używanych do wykonania pojedynczego polecenia indeksowania jest określana przez opcję konfiguracji serwera maksymalny stopień równoległości, bieżące obciążenie oraz statystyki indeksów.
Opcja maksymalnego stopnia równoległości określa maksymalną liczbę procesorów do użycia w ramach równoległego wykonywania planu. Jeśli aparat bazy danych programu SQL Server wykryje, że system jest zajęty, stopień równoległości operacji indeksowania zostanie automatycznie zmniejszony przed rozpoczęciem wykonywania instrukcji. Silnik bazy danych może również zmniejszyć stopień równoległości, jeśli wiodąca kolumna klucza indeksu niepodzielonego ma ograniczoną liczbę unikalnych wartości lub jeśli częstotliwość każdej unikalnej wartości znacznie się różni. Aby uzyskać więcej informacji, zobacz Przewodnik po architekturze przetwarzania zapytań.
Note
Operacje indeksowania równoległego nie są dostępne w każdej wersji programu SQL Server. Aby uzyskać więcej informacji, zobacz Edycje i obsługiwane funkcje SQL Server 2022.
Ograniczenia
Liczba procesorów używanych przez optymalizator zapytań zwykle zapewnia optymalną wydajność. Jednak operacje, takie jak tworzenie, ponowne kompilowanie lub upuszczanie bardzo dużych indeksów, intensywnie korzystają z zasobów i mogą powodować niewystarczającą ilość zasobów dla innych aplikacji i operacji bazy danych na czas trwania operacji indeksowania.
W przypadku wystąpienia tego problemu można ręcznie skonfigurować maksymalną liczbę procesorów używanych do uruchamiania instrukcji indeksu, ograniczając liczbę procesorów do użycia dla operacji indeksowania.
Opcja indeksu
MAXDOPzastępuje opcję konfiguracji maksymalnego stopnia równoległości wyłącznie dla zapytania, które określa tę opcję. W poniższej tabeli wymieniono prawidłowe wartości całkowite, które można określić przy użyciu opcji konfiguracji maksymalnego stopnia równoległości i opcji indeksuMAXDOP.Value Description 0 Określa, że serwer określa liczbę używanych procesorów CPU, w zależności od bieżącego obciążenia systemu. Jest to wartość domyślna i zalecane ustawienie. 1 Zatrzymuje generowanie planu równoległego. Operacja jest wykonywana szeregowo. 2-64 Ogranicza liczbę procesorów do określonej wartości. W zależności od bieżącego obciążenia może być używana mniejsza liczba procesorów. Jeśli zostanie określona wartość większa niż liczba dostępnych procesorów CPU, zostanie użyta rzeczywista liczba dostępnych procesorów CPU. Równoległe wykonywanie indeksu i opcja indeksu
MAXDOPmają zastosowanie do następujących instrukcji Transact-SQL:- TWORZENIE INDEKSU
- ALTER INDEX (...) Ponowne kompilowanie
- DROP INDEX (dotyczy tylko indeksów klastrowanych).
- ALTER TABLE ADD (indeks) CONSTRAINT
- OGRANICZENIA ALTER TABLE DROP (indeks klastrowany)
Nie można określić opcji indeksu
MAXDOPw instrukcjiALTER INDEX (...) REORGANIZE.Wymagania dotyczące pamięci dla operacji indeksu partycjonowanego, które wymagają sortowania, mogą być większe, jeśli optymalizator zapytań stosuje stopnie równoległości do operacji kompilacji. Im wyższy stopień równoległości, tym większe jest wymaganie pamięci. Aby uzyskać więcej informacji, zobacz Partycjonowane tabele i indeksy.
Permissions
Wymagane jest uprawnienie ALTER do tabeli lub widoku.
Korzystanie z programu SQL Server Management Studio
Ustawianie maksymalnego stopnia równoległości w indeksie
W Eksploratorze obiektów wybierz znak plus, aby rozwinąć bazę danych zawierającą tabelę, w której chcesz ustawić maksymalny stopień równoległości indeksu.
Rozwiń folder Tables.
Wybierz znak plus, aby rozwinąć tabelę, w której chcesz ustawić maksymalny stopień równoległości indeksu.
Rozwiń folder Indeksy .
Kliknij prawym przyciskiem myszy indeks, dla którego chcesz ustawić maksymalny stopień równoległości, a następnie wybierz pozycję właściwości .
W obszarze Wybierz stronę, wybierz Opcje.
Wybierz maksymalny stopień równoległości, a następnie wprowadź pewną wartość z zakresu od 1 do 64.
Kliknij przycisk OK.
Korzystanie z Transact-SQL
Ustawianie maksymalnego stopnia równoległości dla istniejącego indeksu
W Eksploratorze obiektów , nawiąż połączenie z wystąpieniem silnika bazy danych.
Na pasku Standard wybierz pozycję Nowe zapytanie.
Skopiuj i wklej poniższy przykład w oknie zapytania, a następnie wybierz pozycję Wykonaj. Ten kod zmienia
IX_ProductVendor_VendorIDindeks naPurchasing.ProductVendortabeli, tak aby, jeśli serwer ma osiem lub więcej procesorów, silnik bazy danych ograniczał wykonywanie operacji indeksowania do ośmiu lub mniej procesorów.USE AdventureWorks2022; GO ALTER INDEX IX_ProductVendor_VendorID ON Purchasing.ProductVendor REBUILD WITH(MAXDOP = 8); GO
Aby uzyskać więcej informacji, zobacz ALTER INDEX.
Określanie maksymalnego stopnia równoległości podczas tworzenia nowego indeksu
W Eksploratorze obiektów , nawiąż połączenie z wystąpieniem silnika bazy danych.
Na pasku Standard wybierz pozycję Nowe zapytanie.
Skopiuj i wklej poniższy przykład w oknie zapytania, a następnie wybierz pozycję Wykonaj.
USE AdventureWorks2022; GO CREATE INDEX IX_ProductVendor_NewVendorID ON Purchasing.ProductVendor(BusinessEntityID) WITH (MAXDOP = 8); GO