Delen via


Serverconfiguratie: kostendrempel voor parallelle uitvoering

Van toepassing op:SQL ServerAzure SQL Managed Instance

In dit artikel wordt beschreven hoe u de optie voor serverconfiguratie cost threshold for parallelism in SQL Server configureert met behulp van SQL Server Management Studio of Transact-SQL.

Kostendrempel voor parallelle uitvoering

Met de cost threshold for parallelism optie wordt de drempelwaarde opgegeven waarmee SQL Server parallelle plannen op computers met meer dan één logische processor beschouwt. De cost threshold for parallelism optie kan worden ingesteld op elke waarde tussen 0 en 32.767.

Kosten zijn de som van de geschatte operatorkosten in een queryplan (bijvoorbeeld CPU en I/O). Het is een relatieve meting die alleen wordt gebruikt voor het selecteren van plannen; de werkelijke runtime wordt niet gemeten.

Bepaalde Transact-SQL componenten kunnen een parallel plan remmen. Bijvoorbeeld niet-inlineerbare scalaire door de gebruiker gedefinieerde functies (UDF's), wijzigingen van tabelvariabelen en bepaalde systeemaanroepen. SQL Server evalueert alleen parallelle alternatieven wanneer de geschatte kosten van het beste seriële plan de cost threshold for parallelism waarde overschrijden en vervolgens een goedkoper parallel plan kan kiezen.

Beperkingen

SQL Server negeert de cost threshold for parallelism waarde onder de volgende voorwaarden:

  • Uw computer heeft slechts één logische processor.

  • Er is slechts één logische processor beschikbaar voor SQL Server vanwege de affinity mask configuratieoptie.

  • De max degree of parallelism serverconfiguratieoptie is ingesteld op 1.

Aanbevelingen

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

De standaardwaarde is 5 een beginpunt, geen aanbeveling. Op moderne SQL Server-systemen kan het verhogen helpen om kleinere OLTP-query's uit te voeren met seriële plannen. Gebruik kleine stappen en bekijk een volledige bedrijfscyclus voordat u verdere wijzigingen aanbrengt. Voer indien nodig toepassingstests uit met hogere en lagere waarden om de prestaties van toepassingen te optimaliseren.

Opmerking

In Azure SQL Database kunt u het niet instellen cost threshold for parallelism. Gebruik MAXDOP in plaats daarvan om parallellisme te beheren. Zie Standaard MAXDOP wijzigen in Azure SQL Database en Azure SQL Managed Instance voor meer informatie.

In bepaalde gevallen kan een parallel plan worden gekozen, ook al zijn de abonnementskosten van de query lager dan de huidige cost threshold for parallelism waarde. De beslissing om een parallel of serieel plan te gebruiken, is gebaseerd op een kostenraming die eerder in het optimalisatieproces is opgegeven. Zie de architectuurhandleiding voor queryverwerking voor meer informatie.

Opmerkingen

Als u wilt zien of de cost threshold for parallelism serverconfiguratieoptie te hoog of te laag is ingesteld voor uw workload, zoekt u naar de volgende indicatoren.

Drempelwaarde voor kosten voor parallelle uitvoering Description
Te laag - Te veel CPU-lichte query's gaan parallel.

- In Query Store zijn is_parallel_plan veel plannen ingesteld op 1.

- CXPACKET en CXCONSUMER overheerst wachttypestatistieken. Mogelijk ziet THREADPOOL en SOS_SCHEDULER_YIELD wacht u ook.
Te hoog - Niet genoeg van de CPU-intensieve query's van de workload gaan parallel en het CPU-gebruik is hoger dan optimaal als gevolg hiervan.

- SOS_SCHEDULER_YIELD overheerst de statistieken van het wachttype.

Permissions

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

SQL Server Management Studio gebruiken

  1. Klik in Objectverkenner met de rechtermuisknop op een server en selecteer Eigenschappen.

  2. Selecteer het geavanceerde knooppunt.

  3. Wijzig onder Parallellisme de cost threshold for parallelism optie in de gewenste waarde. Typ of selecteer een waarde van 0 tot 32.767.

Gebruik Transact-SQL

In dit voorbeeld ziet u hoe u sp_configure gebruikt om de waarde van cost threshold for parallelism op 20in te stellen.

USE master;
GO

EXECUTE sp_configure 'show advanced options', 1;
GO

RECONFIGURE;
GO

EXECUTE sp_configure 'cost threshold for parallelism', 20;
GO

RECONFIGURE;
GO

EXECUTE sp_configure 'show advanced options', 0;
GO

RECONFIGURE;
GO

Zie Server-configuratieoptiesvoor meer informatie.

Opvolgen: Nadat u de kostendrempel voor parallelle uitvoering hebt geconfigureerd

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