Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Tento článek popisuje, jak nakonfigurovat max degree of parallelism možnost konfigurace serveru (MAXDOP) v SQL Serveru pomocí aplikace SQL Server Management Studio nebo Transact-SQL. Pokud instance SQL Serveru běží na počítači, který má více než jeden mikroprocesor nebo procesor, databázový stroj zjistí, zda je možné použít paralelismus. Stupeň paralelismu určuje počet procesorů použitých ke spuštění jednoho příkazu pro každé provedení paralelního plánu. Pomocí této možnosti můžete max degree of parallelism omezit počet procesorů, které se mají použít při paralelním provádění plánu. Další podrobnosti o limitu nastaveném na max degree of parallelismtéto stránce najdete v části Důležité informace . SQL Server zvažuje plány paralelního spouštění pro dotazy, operace pomocí Data Definition Language (DDL), včetně indexů, paralelní vložení, online změny sloupců, sběr paralelních statistik a statickou a kurzorovou populaci řízenou klíčovou sadou.
SQL Server 2019 (15.x) zavedl automatická doporučení pro nastavení max degree of parallelism možnosti konfigurace serveru na základě počtu procesorů dostupných během procesu instalace. Uživatelské rozhraní nastavení umožňuje buď přijmout doporučená nastavení, nebo zadat vlastní hodnotu. Další informace najdete na stránce Konfigurace databázového stroje – MaxDOP.
Ve službě Azure SQL Database, sql database in Fabric a Azure SQL Managed Instance je výchozím MAXDOP nastavením pro každou novou jednoúčelovou databázi, databázi elastického fondu a spravovanou instanci 8. V Azure SQL Database a databázi SQL v Fabric je konfigurace v oboru databáze nastavena na MAXDOP. Ve službě Azure SQL Managed Instance je možnost konfigurace serveru max degree of parallelism nastavena na 8.
Další MAXDOP informace o službě Azure SQL Database nebo databázi SQL v prostředcích infrastruktury najdete v tématu Konfigurace maximálního stupně paralelismu (MAXDOP) ve službě Azure SQL Database a v databázi SQL v prostředcích infrastruktury.
Considerations
Tato možnost je pokročilá a měla by být změněna pouze zkušeným odborníkem na databázi.
Pokud není možnost masky spřažení nastavená na výchozí hodnotu, může omezit počet procesorů dostupných pro SQL Server v systémech symetrického multiprocesingu (SMP).
Nastavení max degree of parallelism na 0 umožňuje SQL Serveru používat všechny dostupné procesory až 64 procesorů. Ve většině případů to ale není doporučená hodnota. Další informace o doporučených hodnotách pro maximální stupeň paralelismu najdete v části Doporučení na této stránce.
Pokud chcete potlačit generování paralelního plánu, nastavte max degree of parallelism hodnotu 1. Nastavte hodnotu na číslo od 1 do 32 767 a určete maximální počet jader procesoru, které lze použít během jednoho spuštění dotazu. Pokud je zadána hodnota větší než počet dostupných procesorů, použije se skutečný počet dostupných procesorů. Pokud má počítač jenom jeden procesor, max degree of parallelism hodnota se ignoruje.
Maximální stupeň limitu paralelismu je nastaven na každou úlohu. Nejedná se o požadavek na ani limit dotazu. To znamená, že během paralelního spuštění dotazu může jeden požadavek vytvořit více úloh až do limitu MAXDOP a každý úkol používá jeden pracovní proces a jeden plánovač. Další informace najdete v části Plánování paralelních úloh v průvodci architekturou vláken a úloh.
Maximální stupeň paralelismu v konfiguraci serveru můžete přepsat:
- Na úrovni dotazu použijte
MAXDOPnebo nápovědy úložiště dotazů. - Na úrovni databáze pomocí
konfigurace databáze s vymezeným oborem . - Na úrovni úlohy použijte
MAX_DOPmožnost skupiny úloh správce prostředků.
Operace indexu, které vytvářejí nebo znovu sestavují index nebo které odstraňují clusterovaný index, můžou být náročné na prostředky. Maximální stupeň paralelismu pro operace indexu můžete přepsat zadáním MAXDOP možnosti indexu v příkazu indexu. Hodnota MAXDOP se použije na příkaz v době spuštění a není uložena v metadatech indexu. Další informace naleznete v tématu Konfigurace paralelních indexových operací.
Kromě dotazů a operací indexu tato možnost také řídí paralelismus DBCC CHECKTABLE, DBCC CHECKDBa DBCC CHECKFILEGROUP. Plány paralelního spouštění pro tyto příkazy můžete zakázat pomocí trace flag 2528. Další informace najdete v příznaku trasování 2528.
SQL Server 2022 (16.x) zavedl zpětnou vazbu stupně paralelismu (DOP), novou funkci pro zlepšení výkonu dotazů identifikací nekonzistence paralelismu pro opakující se dotazy na základě uplynulého času a čekání. Zpětná vazba DOP je součástí inteligentní řady funkcí pro zpracování dotazů a řeší neoptimální využití paralelismu pro opakující se dotazy. Informace o zpětné vazbě DOP najdete v tématu Stupeň paralelismu (DOP).
Recommendations
V SQL Serveru 2016 (13.x) a novějších verzích, během spouštění služby, pokud databázový stroj zjistí více než osm fyzických jader na uzel NUMA nebo soket, jsou automaticky vytvořeny soft-NUMA uzly. Databázový stroj umístí logické procesory ze stejného fyzického jádra do různých uzlů soft-NUMA. Doporučení v následující tabulce jsou zaměřená na zachování všech pracovních vláken paralelního dotazu ve stejném uzlu soft-NUMA. Tím se zlepší výkon dotazů a distribuce pracovních vláken napříč uzly NUMA pro úlohu. Další informace najdete v tématu Soft-NUMA (SQL Server).
V SQL Serveru 2016 (13.x) a novějších verzích při konfiguraci max degree of parallelism hodnoty konfigurace serveru použijte následující pokyny:
| Konfigurace serveru | Počet procesorů | Guidance |
|---|---|---|
| Server s jedním uzlem NUMA | Menší než nebo rovno osmi logickým procesorům | Uchovávejte MAXDOP na nebo pod # logických procesorů |
| Server s jedním uzlem NUMA | Větší než osm logických procesorů | Nechte MAXDOP na 8 |
| Server s několika uzly NUMA | Maximálně 16 logických procesorů na uzel NUMA | Uchovávejte MAXDOP na nebo pod # logických procesorů na uzel NUMA |
| Server s několika uzly NUMA | Více než 16 logických procesorů na uzel NUMA | Udržujte MAXDOP na polovinu počtu logických procesorů na uzel NUMA s maximální hodnotou 16 |
Uzel NUMA v předchozí tabulce odkazuje na uzly NUMA automaticky vytvořené sql Serverem 2016 (13.x) a vyššími verzemi nebo hardwarovými uzly NUMA, pokud je zakázaná technologie NUMA.
Při nastavování maximálního stupně paralelismu pro skupiny úloh Správce prostředků použijte stejné pokyny. Další informace najdete v tématu VYTVOŘENÍ SKUPINY ÚLOH.
SQL Server 2014 a starší verze
Z SQL Serveru 2008 (10.0.x) až SQL Server 2014 (12.x) při konfiguraci max degree of parallelism hodnoty konfigurace serveru použijte následující pokyny:
| Konfigurace serveru | Počet procesorů | Guidance |
|---|---|---|
| Server s jedním uzlem NUMA | Menší než nebo rovno osmi logickým procesorům | Uchovávejte MAXDOP na nebo pod # logických procesorů |
| Server s jedním uzlem NUMA | Větší než osm logických procesorů | Nechte MAXDOP na 8 |
| Server s několika uzly NUMA | Menší než nebo rovno osmi logickým procesorům na uzel NUMA | Uchovávejte MAXDOP na nebo pod # logických procesorů na uzel NUMA |
| Server s několika uzly NUMA | Více než osm logických procesorů na uzel NUMA | Nechte MAXDOP na 8 |
Permissions
Ve výchozím nastavení se oprávnění ke spuštění sp_configure bez parametrů nebo pouze s prvním parametrem udělují všem uživatelům. Pokud chcete spustit sp_configure s oběma parametry pro změnu možnosti konfigurace nebo spuštění příkazu RECONFIGURE, musí být uživateli uděleno oprávnění na úrovni serveru ALTER SETTINGS. Oprávnění ALTER SETTINGS implicitně uchovává správce systému a správce serveru pevné role serveru.
Použití aplikace SQL Server Management Studio
Tyto možnosti změní MAXDOP pro instanci.
V Průzkumníku objektů klikněte pravým tlačítkem myši na požadovanou instanci a vyberte Vlastnosti.
Vyberte uzel Pokročilé.
V poli Maximální stupeň paralelismu vyberte maximální počet procesorů, které se mají použít při provádění paralelního plánu.
Použijte Transact-SQL
Připojte se k databázovému stroji pomocí aplikace SQL Server Management Studio.
Na panelu Standard vyberte Nový dotaz.
Zkopírujte a vložte následující příklad do okna dotazu a vyberte Spustit. Tento příklad ukazuje, jak použít sp_configure ke konfiguraci
max degree of parallelismmožnosti16.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
Další informace naleznete v tématu Možnosti konfigurace serveru.
Pokračování: Po nakonfigurování maximálního stupně paralelismu
Nastavení se projeví okamžitě bez restartování serveru.
Související obsah
- inteligentní zpracování dotazů v databázích SQL
- Průvodce architekturou zpracování dotazů
- Nastavení příznaků trasování pomocí DBCC TRACEON (Transact-SQL)
- Pokyny pro úložiště dotazů
- Rady dotazů (Transact-SQL)
- Nápověda k dotazu USE HINT
- ÚPRAVA KONFIGURACE S ROZSAHEM DATABÁZE (Transact-SQL)
- možnost konfigurace serveru spřažení
- možnosti konfigurace serveru
- Průvodce architekturou zpracování dotazů
- Průvodce architekturou vláken a úloh
-
sp_configure (Transact-SQL) - Nastavení možností indexu
- stupeň paralelismu (DOP)
- PŘEKONFIGUROVAT (Transact-SQL)
- Monitorování a ladění výkonu
- Konfigurace paralelních indexovacích operací