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
Azure SQL Database
Spravovaná instance
Azure SQLDatabáze SQL v Microsoft Fabric
Tento článek definuje maximální stupeň paralelismu a vysvětluje, jak toto nastavení upravit v SQL Serveru pomocí aplikace SQL Server Management Studio nebo jazyka Transact-SQL.
V systémech s více procesory, na kterých běží SQL Server Enterprise nebo vyšší, můžou příkazy indexu použít více procesorů k provádění operací prohledávání, řazení a indexování přidružených k příkazu indexu stejně jako jiné dotazy. Počet procesorů použitých ke spuštění jednoho indexového příkazu je určen maximálním stupněm paralelismu konfiguraci serveru, aktuální úlohou a statistikou indexu.
Maximální stupeň paralelismu určuje maximální počet procesorů, které se mají použít při paralelním provádění plánu. Pokud databázový stroj SQL Serveru zjistí, že systém je zaneprázdněn, stupeň paralelismu operace indexu se automaticky sníží před spuštěním příkazu. Databázový stroj může také snížit stupeň paralelismu, pokud hlavní klíčový sloupec neděleného indexu má omezený počet jedinečných hodnot nebo frekvence jednotlivých jedinečných hodnot se výrazně liší. Další informace naleznete v tématu Průvodce architekturou zpracování dotazů.
Note
Paralelní operace indexu nejsou dostupné v každé edici SQL Serveru. Další informace naleznete v tématu Edice a podporované funkce SQL Server 2022.
Omezení
Počet procesorů používaných optimalizátorem dotazů obvykle poskytuje optimální výkon. Operace, jako je vytváření, opětovné sestavení nebo vyřazení velmi velkých indexů, jsou však náročné na prostředky a můžou způsobit nedostatečné prostředky pro jiné aplikace a databázové operace po dobu trvání operace indexu.
Pokud k tomuto problému dojde, můžete ručně nakonfigurovat maximální počet procesorů, které se používají ke spuštění příkazu indexu omezením počtu procesorů, které se mají použít pro operaci indexu.
Možnost
MAXDOPindexu přepíše maximální stupeň konfigurace paralelismu pouze pro dotaz určující tuto možnost. Následující tabulka uvádí platné celočíselné hodnoty, které je možné zadat s možností konfigurace maximálního stupně paralelismu a možností indexuMAXDOP.Value Description 0 Určuje, že server určuje počet použitých procesorů v závislosti na aktuální systémové úloze. Toto je výchozí hodnota a doporučené nastavení. 1 Potlačuje vytvoření paralelního plánu. Operace se provádí sériově. 2-64 Omezí počet procesorů na zadanou hodnotu. V závislosti na aktuální úloze se může použít méně procesorů. Pokud je zadána hodnota větší než počet dostupných procesorů, použije se skutečný počet dostupných procesorů. Paralelní spuštění indexu a možnost indexu
MAXDOPplatí pro následující příkazy Transact-SQL:- CREATE INDEX
- ALTER INDEX (...) OPĚTOVNÉ SESTAVENÍ
- DROP INDEX (to platí jenom pro clusterované indexy.)
- OMEZENÍ ALTER TABLE ADD (index)
- ALTER TABLE DROP (clusterovaný index) CONSTRAINT
V
MAXDOPpříkazu nelze zadat možnost indexuALTER INDEX (...) REORGANIZE.Požadavky na paměť pro dělené indexové operace, které vyžadují řazení, můžou být větší, pokud Optimalizátor dotazů aplikuje na operaci sestavení stupně paralelismu. Čím vyšší je stupeň paralelismu, tím větší je požadavek na paměť. Další informace najdete v tématu Dělené tabulky a indexy.
Povolení
Vyžaduje oprávnění ALTER v tabulce nebo zobrazení.
Použití aplikace SQL Server Management Studio
Nastavení maximálního stupně paralelismu v indexu
V Průzkumníku objektů vyberte znaménko plus a rozbalte databázi obsahující tabulku, na které chcete nastavit maximální stupeň paralelismu indexu.
Rozbalte složku Tabulky.
Výběrem znaménka plus rozbalte tabulku, na které chcete nastavit maximální stupeň paralelismu indexu.
Rozbalte složku Indexy.
Pravým tlačítkem myši klikněte na index, pro který chcete nastavit maximální stupeň paralelismu, a vyberte Vlastnosti.
V sekci Vyberte stránku, vyberte Možnosti.
Vyberte Maximální stupeň paralelismua zadejte hodnotu mezi 1 a 64.
Vyberte OK.
Použijte Transact-SQL
Nastavení maximálního stupně paralelismu u existujícího indexu
V Průzkumníku objektůpřipojte se k instanci databázového serveru.
Na panelu Standard vyberte Nový dotaz.
Zkopírujte a vložte následující příklad do okna dotazu a vyberte Spustit. Tento kód změní
IX_ProductVendor_VendorIDindex tabulkyPurchasing.ProductVendortak, aby v případě, že má server osm nebo více procesorů, databázový stroj omezuje provádění operace indexu na osm nebo méně procesorů.USE AdventureWorks2022; GO ALTER INDEX IX_ProductVendor_VendorID ON Purchasing.ProductVendor REBUILD WITH(MAXDOP = 8); GO
Další informace naleznete v tématu ALTER INDEX.
Určení maximálního stupně paralelismu při vytváření nového indexu
V Průzkumníku objektůpřipojte se k instanci databázového serveru.
Na panelu Standard vyberte Nový dotaz.
Zkopírujte a vložte následující příklad do okna dotazu a vyberte Spustit.
USE AdventureWorks2022; GO CREATE INDEX IX_ProductVendor_NewVendorID ON Purchasing.ProductVendor(BusinessEntityID) WITH (MAXDOP = 8); GO
Související obsah
- Průvodce architekturou zpracování dotazů
- CREATE INDEX (Transact-SQL)
- ALTER INDEX (Transact-SQL)
- DROP INDEX (Transact-SQL)
- ZMĚNIT TABULKU (Transact-SQL)
- ALTER TABLE table_constraint (Transact-SQL)
- ALTER TABLE index_option (Transact-SQL)