Udostępnij za pomocą


Konfiguracja serwera: maksymalny stopień równoległości

Dotyczy:SQL Server

W tym artykule opisano sposób konfigurowania opcji konfiguracji serwera max degree of parallelism (MAXDOP) w programie SQL Server, używając programu SQL Server Management Studio lub języka Transact-SQL. Gdy instancja programu SQL Server działa na komputerze z więcej niż jednym mikroprocesorem lub procesorem, silnik bazy danych wykrywa, czy można użyć równoległości. Stopień równoległości określa liczbę procesorów używanych do uruchamiania pojedynczej instrukcji dla każdego równoległego wykonania planu. Możesz użyć max degree of parallelism opcji, aby ograniczyć liczbę procesorów do użycia w równoległym wykonywaniu planu. Aby uzyskać więcej informacji na temat limitu ustawionego przez max degree of parallelism, zobacz sekcję Zagadnienia na tej stronie. Program SQL Server uwzględnia równoległe plany wykonywania zapytań, operacje języka definicji danych indeksu (DDL), równoległe operacje wstawiania, zmianę kolumny w trybie online, równoległe zbieranie statystyk oraz populację kursorów sterowanych zestawem kluczy i statycznych.

Program SQL Server 2019 (15.x) wprowadził automatyczne zalecenia dotyczące ustawiania max degree of parallelism opcji konfiguracji serwera na podstawie liczby procesorów dostępnych podczas procesu instalacji. Interfejs użytkownika konfiguracji umożliwia akceptowanie zalecanych ustawień lub wprowadzanie własnej wartości. Aby uzyskać więcej informacji, zobacz Stronę Konfiguracja aparatu bazy danych — MaxDOP.

W usłudze Azure SQL Database, bazie danych SQL w sieci szkieletowej i usłudze Azure SQL Managed Instance ustawieniem domyślnym MAXDOP dla każdej nowej pojedynczej bazy danych, bazy danych elastycznej puli i wystąpienia zarządzanego jest 8. W Azure SQL Database i SQL Database w ramach usługi Fabric, konfiguracja obejmująca daną bazę danych jest ustawiona na wartość MAXDOP8. W usłudze Azure SQL Managed Instance opcja konfiguracji serwera max degree of parallelism jest ustawiona na 8.

Aby uzyskać więcej informacji na temat MAXDOP usługi Azure SQL Database lub bazy danych SQL w sieci szkieletowej, zobacz Konfigurowanie maksymalnego stopnia równoległości (MAXDOP) w usłudze Azure SQL Database i bazie danych SQL w usłudze Fabric.

Considerations

Ta opcja jest opcją zaawansowaną i powinna zostać zmieniona tylko przez doświadczonych specjalistów w dziedzinie bazy danych.

Jeśli opcja maski koligacji nie jest ustawiona na wartość domyślną, może ograniczyć liczbę procesorów dostępnych dla programu SQL Server w systemach symmetric multiprocessing (SMP).

Ustawienie max degree of parallelism umożliwia programowi 0 SQL Server używanie wszystkich dostępnych procesorów do 64 procesorów. Jednak nie jest to zalecana wartość w większości przypadków. Aby uzyskać więcej informacji na temat zalecanych wartości maksymalnego stopnia równoległości, zobacz sekcję Zalecenia na tej stronie.

Aby pominąć generowanie planu równoległego, ustaw max degree of parallelism na 1. Ustaw wartość na liczbę z zakresu od 1 do 32 767, aby określić maksymalną liczbę rdzeni procesora, które mogą być używane podczas wykonywania pojedynczego zapytania. Jeśli zostanie określona wartość większa niż liczba dostępnych procesorów, zostanie użyta rzeczywista liczba dostępnych procesorów. Jeśli komputer ma tylko jeden procesor, max degree of parallelism wartość jest ignorowana.

Maksymalny stopień limitu równoległości jest ustawiany na zadanie. Nie jest to żądanie na ani limit zapytania. Oznacza to, że podczas równoległego wykonywania zapytania pojedyncze żądanie może zduplikować wiele zadań do limitu MAXDOP , a każde zadanie używa jednego procesu roboczego i jednego harmonogramu. Aby uzyskać więcej informacji, zobacz sekcję Planowanie zadań równoległych w przewodniku dotyczącym architektury wątków i zadań.

Można nadpisać maksymalny stopień równoległości w konfiguracji serwera:

Operacje indeksowania, które tworzą lub ponownie kompilują indeks lub które upuszczają indeks klastrowany, mogą intensywnie obciążać zasoby. Możesz zastąpić maksymalny stopień równoległości dla operacji indeksowania, określając MAXDOP opcję indeksu w instrukcji indeksu. Wartość MAXDOP jest stosowana do instrukcji w czasie wykonywania i nie jest przechowywana w metadanych indeksu. Aby uzyskać więcej informacji, zobacz Konfigurowanie operacji indeksu równoległego.

Oprócz zapytań i operacji indeksowania ta opcja kontroluje również równoległość elementów DBCC CHECKTABLE, DBCC CHECKDBi DBCC CHECKFILEGROUP. Możesz wyłączyć równoległe plany wykonywania dla tych instrukcji, używając flagi śledzenia 2528. Aby uzyskać więcej informacji, zobacz flagę śledzenia 2528.

Program SQL Server 2022 (16.x) wprowadził informację zwrotną Dotyczącą Stopnia Równoległości (DOP), nową funkcję zwiększającą wydajność zapytań przez identyfikację nieefektywności w równoległym przetwarzaniu dla powtarzających się zapytań, na podstawie upływu czasu i okresów oczekiwania. Informacja zwrotna DOP jest częścią rodziny inteligentnego przetwarzania zapytań i dotyczy nieoptymalnego wykorzystania przetwarzania równoległego dla powtarzających się zapytań. Aby uzyskać informacje na temat informacji zwrotnej DOP, odwiedź stronę Stopień równoległości (DOP).

Recommendations

W programie SQL Server 2016 (13.x) i nowszych wersjach, jeśli podczas uruchamiania usługi aparat bazy danych wykryje więcej niż osiem rdzeni fizycznych na węzeł NUMA lub gniazdo, węzły soft-NUMA są tworzone automatycznie. Silnik bazy danych rozmieszcza procesory logiczne pochodzące z tego samego rdzenia fizycznego na różne węzły NUMA oprogramowania. Zalecenia w poniższej tabeli mają na celu zachowanie wszystkich wątków roboczych zapytania równoległego w tym samym węźle soft-NUMA. Poprawia to wydajność zapytań oraz dystrybucję wątków roboczych pomiędzy węzłami NUMA w przypadku obciążenia. Aby uzyskać więcej informacji, zobacz Soft-NUMA (SQL Server).

W programie SQL Server 2016 (13.x) i nowszych wersjach użyj następujących wskazówek podczas konfigurowania max degree of parallelism wartości konfiguracji serwera:

Konfiguracja serwera Liczba procesorów Guidance
Serwer z pojedynczym węzłem NUMA Mniejsze niż lub równe ośmiu procesorów logicznych Zachowaj MAXDOP liczbę procesorów logicznych lub znajdujących się pod numerem
Serwer z pojedynczym węzłem NUMA Więcej niż osiem procesorów logicznych Zachowaj MAXDOP przy 8
Serwer z wieloma węzłami NUMA Mniejsze niż lub równe 16 procesorów logicznych na węzeł NUMA Zachowaj MAXDOP liczbę procesorów logicznych na węzeł NUMA lub pod numerem #
Serwer z wieloma węzłami NUMA Więcej niż 16 procesorów logicznych na węzeł NUMA Zachowaj MAXDOP połowę liczby procesorów logicznych na węzeł NUMA z wartością MAX 16

Węzeł NUMA w poprzedniej tabeli odnosi się do węzłów soft-NUMA automatycznie tworzonych przez SQL Server 2016 (13.x) i nowsze wersje lub sprzętowych węzłów NUMA, jeśli soft-NUMA jest wyłączone.

Używaj tych samych wytycznych podczas ustawiania opcji maksymalnego stopnia równoległości dla grup obciążeń Menedżera Zasobów. Aby uzyskać więcej informacji, zobacz CREATE WORKLOAD GROUP.

SQL Server 2014 i starsze wersje

Z programu SQL Server 2008 (10.0.x) do programu SQL Server 2014 (12.x) użyj następujących wskazówek podczas konfigurowania max degree of parallelism wartości konfiguracji serwera:

Konfiguracja serwera Liczba procesorów Guidance
Serwer z pojedynczym węzłem NUMA Mniejsze niż lub równe ośmiu procesorów logicznych Zachowaj MAXDOP liczbę procesorów logicznych lub znajdujących się pod numerem
Serwer z pojedynczym węzłem NUMA Więcej niż osiem procesorów logicznych Zachowaj MAXDOP przy 8
Serwer z wieloma węzłami NUMA Mniejsze niż lub równe ośmiu procesorów logicznych na węzeł NUMA Zachowaj MAXDOP liczbę procesorów logicznych na węzeł NUMA lub pod numerem #
Serwer z wieloma węzłami NUMA Więcej niż osiem procesorów logicznych na węzeł NUMA Zachowaj MAXDOP przy 8

Permissions

Uprawnienia do wykonywania na sp_configure, bez parametrów lub tylko z pierwszym parametrem, są domyślnie przyznawane wszystkim użytkownikom. Aby wykonać sp_configure z obydwoma parametrami, aby zmienić opcję konfiguracji lub uruchomić instrukcję RECONFIGURE, użytkownik musi mieć uprawnienie ALTER SETTINGS na poziomie serwera. Uprawnienie ALTER SETTINGS jest niejawnie posiadane przez sysadmin i serveradmin role stałe serwera.

Korzystanie z programu SQL Server Management Studio

Te opcje zmieniają MAXDOP wartość dla wystąpienia.

  1. W Eksploratorze obiektów kliknij prawym przyciskiem myszy żądane wystąpienie i wybierz polecenie Właściwości.

  2. Wybierz węzeł Zaawansowany .

  3. W polu Maksymalny stopień równoległości wybierz maksymalną liczbę procesorów do użycia w równoległym wykonaniu planu.

Korzystanie z Transact-SQL

  1. Połącz się z silnikiem bazy danych za pomocą programu SQL Server Management Studio.

  2. Na pasku Standard wybierz pozycję Nowe zapytanie.

  3. Skopiuj i wklej poniższy przykład w oknie zapytania, a następnie wybierz pozycję Wykonaj. W tym przykładzie pokazano, jak za pomocą sp_configure skonfigurować max degree of parallelism opcję na 16.

    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
    

Aby uzyskać więcej informacji, zobacz opcje konfiguracji serwera .

Następny krok: Po skonfigurowaniu maksymalnego stopnia równoległości

Ustawienie zostanie zastosowane natychmiast bez ponownego uruchomienia serwera.