Delen via


Serverconfiguratie: maximale mate van parallelle uitvoering

Van toepassing op:SQL Server

In dit artikel wordt beschreven hoe u de max degree of parallelism (MAXDOP) serverconfiguratieoptie in SQL Server configureert met behulp van SQL Server Management Studio of Transact-SQL. Wanneer een exemplaar van SQL Server wordt uitgevoerd op een computer met meer dan één microprocessor of CPU, detecteert de database-engine of parallellisme kan worden gebruikt. De mate van parallelle uitvoering bepaalt het aantal processors dat wordt gebruikt om één instructie uit te voeren, voor elke parallelle uitvoering van het plan. U kunt de max degree of parallelism optie gebruiken om het aantal processors te beperken voor parallelle uitvoering van plannen. Zie de sectie max degree of parallelism op deze pagina voor meer informatie over de limiet die is ingesteld. SQL Server houdt rekening met parallelle uitvoeringsplannen voor query's, DDL-bewerkingen (Data Definition Language), parallelle invoegtoepassingen, online kolomwijzigingen, parallelle statistiekverzameling en statische en keyset-gestuurde cursorpopulatie.

SQL Server 2019 (15.x) heeft automatische aanbevelingen geïntroduceerd voor het instellen van de max degree of parallelism serverconfiguratieoptie op basis van het aantal processors dat beschikbaar is tijdens het installatieproces. Met de gebruikersinterface van setup kunt u de aanbevolen instellingen accepteren of uw eigen waarde invoeren. Zie Database Engine Configuration - MaxDOP-paginavoor meer informatie.

In Azure SQL Database, SQL Database in Fabric en Azure SQL Managed Instance is MAXDOPde standaardinstelling voor elke 8 individuele database, elastische pooldatabase en beheerd exemplaar. In Azure SQL Database en SQL Database in Fabric is de MAXDOP configuratie met databasebereik ingesteld op 8. In Azure SQL Managed Instance is de max degree of parallelism serverconfiguratieoptie ingesteld op 8.

Zie MAXDOP voor meer informatie over Azure SQL Database of SQL Database in Fabric.

Considerations

Deze optie is een geavanceerde optie en moet alleen worden gewijzigd door een ervaren databaseprofessional.

Als de optie affiniteitsmasker niet is ingesteld op de standaardinstelling, kan dit het aantal processors beperken dat beschikbaar is voor SQL Server op SMP-systemen (symmetrische multiprocessing).

Instellen max degree of parallelism op 0 stelt SQL Server in staat om alle beschikbare processors tot maximaal 64 processors te gebruiken. Dit is echter niet de aanbevolen waarde voor de meeste gevallen. Zie de sectie Aanbevelingen op deze pagina voor meer informatie over de aanbevolen waarden voor maximale mate van parallelle uitvoering.

Als u het genereren van parallelle plannen wilt onderdrukken, stelt u max degree of parallelism in op 1. Stel de waarde in op een getal van 1 tot 32.767 om het maximum aantal processorkernen op te geven dat kan worden gebruikt tijdens één queryuitvoering. Als een waarde groter is dan het aantal beschikbare processors is opgegeven, wordt het werkelijke aantal beschikbare processors gebruikt. Als de computer slechts één processor heeft, wordt de max degree of parallelism waarde genegeerd.

De maximale mate van parallelle uitvoering wordt per taak ingesteld. Het is niet per aanvraag of per query limiet. Dit betekent dat tijdens een parallelle queryuitvoering één aanvraag meerdere taken tot aan de MAXDOP limiet kan instellen en dat elke taak één werkrol en één planner gebruikt. Zie de sectie Parallelle taken plannen in de handleiding thread- en taakarchitectuur voor meer informatie.

U kunt de maximale mate van parallelle serverconfiguratiewaarde overschrijven:

Indexbewerkingen die een index maken of herbouwen, of die een geclusterde index verwijderen, kunnen resource-intensief zijn. U kunt de maximale mate van parallelle uitvoering voor indexbewerkingen overschrijven door de MAXDOP indexoptie in de indexinstructie op te geven. De MAXDOP waarde wordt tijdens de uitvoering toegepast op de instructie en wordt niet opgeslagen in de metagegevens van de index. Zie Parallelle indexbewerkingen configurerenvoor meer informatie.

Naast query's en indexbewerkingen bepaalt deze optie ook het parallellisme van DBCC CHECKTABLE, DBCC CHECKDBen DBCC CHECKFILEGROUP. U kunt parallelle uitvoeringsplannen voor deze instructies uitschakelen met behulp van traceringsvlag 2528. Zie traceringsvlag 2528 voor meer informatie.

SQL Server 2022 (16.x) heeft DOP-feedback (Degree of Parallelism) geïntroduceerd, een nieuwe functie om de queryprestaties te verbeteren door inefficiënties voor parallelle uitvoering te identificeren voor herhalende query's, op basis van verstreken tijd en wachttijden. DOP-feedback maakt deel uit van de intelligente queryverwerkingsfamilie van functies en behandelt suboptimaal gebruik van parallelle uitvoering voor herhalende query's. Ga voor meer informatie over feedback over de mate van parallelisme (DOP) naar Feedback over de mate van parallelisme (DOP).

Recommendations

In SQL Server 2016 (13.x) en latere versies, tijdens het opstarten van de service, als de Database Engine meer dan acht fysieke kernen per NUMA-knooppunt of socket detecteert bij het opstarten, worden soft-NUMA-knooppunten automatisch automatisch gemaakt. De database-engine plaatst logische processors van dezelfde fysieke kern in verschillende soft-NUMA-knooppunten. De aanbevelingen in de volgende tabel zijn bedoeld om ervoor te zorgen dat alle werkthreads van een parallelle query binnen hetzelfde soft-NUMA-knooppunt blijven. Dit verbetert de prestaties van de query's en de distributie van werknemer-draad op de NUMA-knooppunten voor de workload. Zie Soft-NUMA (SQL Server) voor meer informatie.

Gebruik in SQL Server 2016 (13.x) en latere versies de volgende richtlijnen wanneer u de max degree of parallelism serverconfiguratiewaarde configureert:

Serverconfiguratie Het aantal processors Guidance
Server met één NUMA-knooppunt Kleiner dan of gelijk aan acht logische processors Houd MAXDOP het aantal logische processors bij of onder het aantal logische processors
Server met één NUMA-knooppunt Meer dan acht logische processorkernen Bij 8 houden MAXDOP
Server met meerdere NUMA-knooppunten Kleiner dan of gelijk aan 16 logische processors per NUMA-knooppunt Houd MAXDOP bij of onder het aantal logische processors per NUMA-knooppunt
Server met meerdere NUMA-knooppunten Groter dan 16 logische processors per NUMA-knooppunt Houd MAXDOP maximaal de helft van het aantal logische processors per NUMA-knooppunt met een MAX-waarde van 16

NUMA-knooppunt in de vorige tabel verwijst naar soft-NUMA-knooppunten die automatisch worden gemaakt door SQL Server 2016 (13.x) en hogere versies, of op hardware gebaseerde NUMA-knooppunten als soft-NUMA is uitgeschakeld.

Gebruik dezelfde richtlijnen wanneer u de maximale mate van parallelle uitvoering instelt voor Resource Governor-workloadgroepen. Zie CREATE WORKLOAD GROUP voor meer informatie.

SQL Server 2014 en eerdere versies

Gebruik vanuit SQL Server 2008 (10.0.x) tot en met SQL Server 2014 (12.x) de volgende richtlijnen wanneer u de max degree of parallelism serverconfiguratiewaarde configureert:

Serverconfiguratie Het aantal processors Guidance
Server met één NUMA-knooppunt Kleiner dan of gelijk aan acht logische processors Houd MAXDOP het aantal logische processors bij of onder het aantal logische processors
Server met één NUMA-knooppunt Meer dan acht logische processorkernen Bij 8 houden MAXDOP
Server met meerdere NUMA-knooppunten Kleiner dan of gelijk aan acht logische processors per NUMA-knooppunt Houd MAXDOP bij of onder het aantal logische processors per NUMA-knooppunt
Server met meerdere NUMA-knooppunten Groter dan acht logische processors per NUMA-knooppunt Bij 8 houden MAXDOP

Permissions

Voer machtigingen uit op sp_configure zonder parameters of met alleen de eerste parameter worden standaard aan alle gebruikers verleend. Als u sp_configure wilt uitvoeren met beide parameters om een configuratieoptie te wijzigen of om de RECONFIGURE-instructie uit te voeren, moet aan een gebruiker de machtiging ALTER SETTINGS serverniveau worden verleend. De machtiging ALTER SETTINGS wordt impliciet gehouden door de vaste serverrollen sysadmin en serverbeheerder.

SQL Server Management Studio gebruiken

Met deze opties wordt de MAXDOP instantie gewijzigd.

  1. Klik in Objectverkenner met de rechtermuisknop op het gewenste exemplaar en selecteer Eigenschappen.

  2. Selecteer het geavanceerde knooppunt.

  3. Selecteer in het vak Max Degree of Parallelism het maximum aantal processors dat moet worden gebruikt in parallelle uitvoering van het plan.

Gebruik Transact-SQL

  1. Maak verbinding met de database-engine met SQL Server Management Studio.

  2. Selecteer Nieuwe query in de standaardbalk.

  3. Kopieer en plak het volgende voorbeeld in het queryvenster en selecteer uitvoeren. In dit voorbeeld ziet u hoe sp_configure te gebruiken om de max degree of parallelism optie naar 16 te configureren.

    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
    

Zie Server-configuratieoptiesvoor meer informatie.

Opvolgen: Nadat u de maximale mate van parallelle uitvoering hebt geconfigureerd

De instelling wordt onmiddellijk van kracht zonder de server opnieuw op te starten.