Sdílet prostřednictvím


Konfigurace serveru: Prahová hodnota nákladů pro paralelismus

platí pro:SQL Serverazure SQL Managed Instance

Tento článek popisuje, jak nakonfigurovat cost threshold for parallelism možnost konfigurace serveru v SQL Serveru pomocí aplikace SQL Server Management Studio nebo Transact-SQL.

Prahová hodnota nákladů pro paralelismus

Možnost cost threshold for parallelism určuje prahovou hodnotu, při které SQL Server považuje paralelní plány na počítačích s více než jedním logickým procesorem. Možnost cost threshold for parallelism lze nastavit na libovolnou hodnotu od 0 do 32 767.

Náklady jsou součtem odhadovaných nákladů na operátory v plánu dotazů (například procesoru a vstupně-výstupních operací). Jedná se o relativní míru použitou pouze pro výběr plánu; neměří skutečný modul runtime.

Některé komponenty Transact-SQL mohou inhibovat paralelní plán. Například nelineable skalární uživatelem definované funkce (UDF), úpravy proměnných tabulky a určitá systémová volání. SQL Server vyhodnocuje paralelní alternativy pouze v případě, že odhadované náklady na sériový plán překročí cost threshold for parallelism hodnotu, a pak může zvolit levnější paralelní plán.

Omezení

SQL Server ignoruje cost threshold for parallelism hodnotu za následujících podmínek:

  • Váš počítač má pouze jeden logický procesor.

  • Sql Server má k dispozici pouze jeden logický procesor, protože je affinity mask k dispozici možnost konfigurace.

  • Možnost max degree of parallelism konfigurace serveru je nastavena na 1hodnotu .

Recommendations

Tato možnost je pokročilá a měla by být změněna pouze zkušeným odborníkem na databázi.

Výchozí hodnota 5 je výchozí bod, nikoli doporučení. V moderních systémech SQL Serveru může zvýšení pomoci udržet menší dotazy OLTP spuštěné pomocí sériových plánů. Před dalšími změnami používejte malé přírůstky a sledujte celý obchodní cyklus. Pokud je to potřeba k optimalizaci výkonu aplikace, proveďte testování aplikací s vyššími a nižšími hodnotami.

Poznámka:

Ve službě Azure SQL Database nemůžete nastavit cost threshold for parallelism. Slouží MAXDOP k řízení paralelismu. Další informace najdete v tématu Změna výchozího maxDOP ve službě Azure SQL Database a azure SQL Managed Instance.

V některých případech může být zvolen paralelní plán, i když náklady na plán dotazu jsou menší než aktuální cost threshold for parallelism hodnota. Rozhodnutí o použití paralelního nebo sériového plánu vychází z odhadu nákladů uvedených dříve v procesu optimalizace. Další informace najdete v průvodci architekturou zpracování dotazů.

Poznámky

Pokud chcete zjistit, jestli cost threshold for parallelism je možnost konfigurace serveru pro vaši úlohu příliš vysoká nebo příliš nízká, vyhledejte následující indikátory.

Prahová hodnota nákladů pro nastavení paralelismu Description
Příliš nízká – Paralelně probíhá příliš mnoho dotazů na světlo procesoru.

- V úložišti dotazů je is_parallel_plan mnoho plánů nastaveno na 1.

- CXPACKET a CXCONSUMER dominuje statistikám typu čekání. Můžete také vidět THREADPOOL a SOS_SCHEDULER_YIELD čekat.
Příliš vysoká – Nedostatek paralelně náročných dotazů na procesor úlohy a využití procesoru je v důsledku toho vyšší než optimální.

- SOS_SCHEDULER_YIELD dominuje statistikám typu čekání.

Povolení

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

  1. V Průzkumníku objektů klikněte pravým tlačítkem na server a vyberte Vlastnosti.

  2. Vyberte uzel Pokročilé.

  3. V části Paralelismus změňte cost threshold for parallelism možnost na požadovanou hodnotu. Zadejte nebo vyberte hodnotu od 0 do 32 767.

Použijte Transact-SQL

Tento příklad ukazuje, jak použít sp_configure k nastavení hodnoty cost threshold for parallelism na 20.

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

Další informace naleznete v tématu Možnosti konfigurace serveru.

Zpracovat: Po nakonfigurování prahové hodnoty nákladů pro možnost paralelismu

Nastavení se projeví okamžitě bez restartování serveru.