Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Den här artikeln beskriver hur du konfigurerar (max degree of parallelism) serverkonfigurationsalternativet MAXDOP i SQL Server med hjälp av SQL Server Management Studio eller Transact-SQL. När en instans av SQL Server körs på en dator som har mer än en mikroprocessor eller processor identifierar databasmotorn om parallellitet kan användas. Graden av parallellitet anger det antal processorer som används för att köra en enskild instruktion för varje parallell plankörning. Du kan använda alternativet max degree of parallelism för att begränsa antalet processorer som ska användas vid parallell plankörning. Mer information om gränsen som anges av max degree of parallelismfinns i avsnittet Överväganden på den här sidan. SQL Server överväger parallella körningsplaner för frågor, DDL-åtgärder (Index Data Definition Language), parallella infogningar, alterkolumn online, parallell statistikinsamling och statisk och nyckeluppsättningsdriven markörpopulation.
SQL Server 2019 (15.x) införde automatiska rekommendationer för att ange max degree of parallelism serverkonfigurationsalternativet baserat på antalet processorer som är tillgängliga under installationsprocessen. Med installationsanvändargränssnittet kan du antingen acceptera de rekommenderade inställningarna eller ange ditt eget värde. Mer information finns i Database Engine Configuration – MaxDOP-sidan.
I Azure SQL Database, SQL Database i Fabric och Azure SQL Managed Instance är MAXDOPstandardinställningen för varje 8 enskild databas, elastisk pooldatabas och hanterad instans . I Azure SQL Database och SQL Database i Fabric är konfigurationen MAXDOP med databasomfattning inställd på 8. I Azure SQL Managed Instance max degree of parallelism är serverkonfigurationsalternativet inställt på 8.
Mer information om MAXDOP Azure SQL Database eller SQL Database i Fabric finns i Konfigurera maxgraden av parallellitet (MAXDOP) i Azure SQL Database och SQL Database i Fabric.
Considerations
Det här alternativet är ett avancerat alternativ och bör endast ändras av en erfaren databasproffs.
Om alternativet för tillhörighetsmask inte är inställt på standardinställningen kan det begränsa antalet processorer som är tillgängliga för SQL Server i SMP-system (symmetrisk multiprocessing).
Genom att ställa in max degree of parallelism till 0 möjliggörs det för SQL Server att använda alla tillgängliga processorer upp till 64 processorer. Detta är dock inte det rekommenderade värdet för de flesta fall. Mer information om rekommenderade värden för maximal grad av parallellitet finns i avsnittet Rekommendationer på den här sidan.
Om du vill förhindra parallell plangenerering anger du max degree of parallelism till 1. Ange värdet till ett tal från 1 till 32 767 för att ange det maximala antalet processorskärnor som kan användas under en enda frågekörning. Om ett värde som är större än antalet tillgängliga processorer anges används det faktiska antalet tillgängliga processorer. Om datorn bara har en processor max degree of parallelism ignoreras värdet.
Den maximala graden av parallellitetsgräns anges per aktivitet. Det är inte ett gräns per begäran eller per förfrågan. Det innebär att under en parallell frågekörning kan en enskild begäran skapa flera uppgifter upp till MAXDOP gränsen, och varje uppgift använder en arbetare och en schemaläggare. Mer information finns i avsnittet Schemaläggning av parallella aktiviteter i guiden Tråd- och aktivitetsarkitektur.
Du kan åsidosätta den maximala graden av parallellitetsserverkonfigurationsvärde:
- På frågenivå använder du
MAXDOPeller Query Store-tipsen. - På databasnivå använder du konfigurationen
MAXDOPmed databasomfattning. - På arbetsbelastningsnivå använder du
MAX_DOPalternativet för en resursguvernörs arbetsbelastningsgrupp.
Indexåtgärder som skapar eller återskapar ett index, eller som släpper ett klustrat index, kan vara resursintensiva. Du kan åsidosätta den maximala graden av parallellitetsvärde för indexåtgärder genom att ange indexalternativet MAXDOP i index-instruktionen. Värdet MAXDOP tillämpas på -instruktionen vid körningstillfället och lagras inte i indexmetadata. Mer information finns i Konfigurera parallella indexåtgärder.
Förutom frågor och indexåtgärder styr det här alternativet även parallelliteten för DBCC CHECKTABLE, DBCC CHECKDBoch DBCC CHECKFILEGROUP. Du kan inaktivera parallella exekveringsplaner för dessa instruktioner med hjälp av spårningsflagga 2528. Mer information finns i spårningsflagga 2528.
SQL Server 2022 (16.x) introducerade DOP-feedback (Degree of Parallelism), en ny funktion för att förbättra frågeprestanda genom att identifiera parallellitetseffektivitet för upprepade frågor baserat på förfluten tid och väntetider. DOP-feedback är en del av den intelligenta frågebearbetningsfamiljen med funktioner och hanterar suboptimal användning av parallellitet för upprepade frågor. Information om DOP-feedback finns i DoP-feedback (Grad av parallellitet).
Recommendations
I SQL Server 2016 (13.x) och senare versioner skapas soft-NUMA-noder automatiskt som standard om databasmotorn identifierar fler än åtta fysiska kärnor per NUMA-nod eller socket vid start. Databasmotorn placerar logiska processorer från samma fysiska kärna i olika soft-NUMA-noder. Rekommendationerna i följande tabell syftar till att hålla alla arbetstrådar i en parallell fråga inom samma soft-NUMA-nod. Detta förbättrar prestandan för frågeprocesser och distribueringen av arbetstrådar över NUMA-noderna i förhållande till arbetsbelastningen. Mer information finns iSoft-NUMA (SQL Server).
I SQL Server 2016 (13.x) och senare versioner använder du följande riktlinjer när du konfigurerar serverkonfigurationsvärdet max degree of parallelism :
| Serverkonfiguration | Antal processorer | Guidance |
|---|---|---|
| Server med enskild NUMA-nod | Mindre än eller lika med åtta logiska processorer | Behåll MAXDOP på eller under # för logiska processorer |
| Server med enskild NUMA-nod | Större än åtta logiska processorer | Behåll MAXDOP vid 8 |
| Server med flera NUMA-noder | Mindre än eller lika med 16 logiska processorer per NUMA-nod | Behåll MAXDOP vid eller under antalet logiska processorer per NUMA-nod |
| Server med flera NUMA-noder | Större än 16 logiska processorer per NUMA-nod | Behåll MAXDOP hälften av antalet logiska processorer per NUMA-nod med maxvärdet 16 |
NUMA-noden i föregående tabell refererar till mjuk-NUMA-noder som skapas automatiskt av SQL Server 2016 (13.x) och högre versioner, eller maskinvarubaserade NUMA-noder om soft-NUMA är inaktiverat.
Använd samma riktlinjer när du anger alternativet för maximal grad av parallellitet för Resource Governor-arbetsbelastningsgrupper. Mer information finns i SKAPA ARBETSBELASTNINGSGRUPP.
SQL Server 2014 och tidigare versioner
Från SQL Server 2008 (10.0.x) till SQL Server 2014 (12.x) använder du följande riktlinjer när du konfigurerar serverkonfigurationsvärdet max degree of parallelism :
| Serverkonfiguration | Antal processorer | Guidance |
|---|---|---|
| Server med enskild NUMA-nod | Mindre än eller lika med åtta logiska processorer | Behåll MAXDOP på eller under # för logiska processorer |
| Server med enskild NUMA-nod | Större än åtta logiska processorer | Behåll MAXDOP vid 8 |
| Server med flera NUMA-noder | Mindre än eller lika med åtta logiska processorer per NUMA-nod | Behåll MAXDOP vid eller under antalet logiska processorer per NUMA-nod |
| Server med flera NUMA-noder | Större än åtta logiska processorer per NUMA-nod | Behåll MAXDOP vid 8 |
Permissions
Utför behörigheter på sp_configure utan parametrar eller med endast den första parametern är som standard beviljade till alla användare. Om du vill köra sp_configure med båda parametrarna för att ändra ett konfigurationsalternativ eller för att köra RECONFIGURE-instruktionen måste en användare beviljas behörigheten ALTER SETTINGS servernivå. Behörighet ALTER SETTINGS hålls implicit av de fasta serverrollerna sysadmin och serveradmin.
Använda SQL Server Management Studio
De här alternativen ändrar MAXDOP för den specifika instansen.
Högerklicka på önskad instans i Object Explorer och välj Egenskaper.
Välj noden Avancerat .
I rutan Maximal grad av parallellitet väljer du det maximala antal processorer som ska användas vid parallell plankörning.
Använd Transact-SQL
Anslut till databasmotorn med SQL Server Management Studio.
I standardfältet väljer du Ny fråga.
Kopiera och klistra in följande exempel i frågefönstret och välj Kör. Det här exemplet visar hur du använder sp_configure för att konfigurera
max degree of parallelismalternativet till16.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
Mer information finns i Server-konfigurationsalternativ.
Följ upp: När du har konfigurerat alternativet för maximal grad av parallellitet
Inställningen börjar gälla omedelbart utan att servern startas om.
Relaterat innehåll
- Intelligent frågebearbetning i SQL-databaser
- Arkitekturguide för frågebearbetning
- Ange spårningsflaggor med DBCC TRACEON (Transact-SQL)
- Query Store-anvisningar
- Frågetips (Transact-SQL)
- ANVÄND QUERY HINT
- ÄNDRA DATABASOMFATTNINGSKONFIGURATION (Transact-SQL)
- Konfigurationsalternativ för tillhörighetsmaskserver
- Server-konfigurationsalternativ
- arkitekturguide för frågebearbetning
- Guide för tråd- och uppgiftsarkitektur
- sp_configure (Transact-SQL)
- Ange Indexalternativ
- grad av parallellitet (DOP) feedback
- OMKONFIGURERA (Transact-SQL)
- Övervaka och finjustera prestanda
- Konfigurera parallella indexåtgärder