Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:SQL Server
Istanza gestita di Azure SQL
Questo articolo descrive come configurare l'opzione di configurazione del cost threshold for parallelism server in SQL Server usando SQL Server Management Studio o Transact-SQL.
Informazioni sulla soglia dei costi per il parallelismo
L'opzione cost threshold for parallelism specifica la soglia in cui SQL Server considera i piani paralleli nei computer con più processori logici. L'opzione cost threshold for parallelism può essere impostata su qualsiasi valore compreso tra 0 e 32.767.
Il costo è la somma dei costi stimati dell'operatore in un piano di query, ad esempio CPU e I/O. Si tratta di una misura relativa usata solo per la selezione del piano; non misura il runtime effettivo.
Alcuni componenti Transact-SQL possono inibire un piano parallelo. Ad esempio, funzioni scalari non scalabili definite dall'utente (UDF), modifiche delle variabili di tabella e determinate chiamate di sistema. SQL Server valuta alternative parallele solo quando il costo stimato del piano seriale migliore supera il cost threshold for parallelism valore e potrebbe quindi scegliere un piano parallelo più economico.
Limiti
SQL Server ignora il cost threshold for parallelism valore nelle condizioni seguenti:
Il computer in uso è dotato di un solo processore.
Solo un singolo processore logico è disponibile per SQL Server a causa dell'opzione
affinity maskdi configurazione.L'opzione
max degree of parallelismdi configurazione del server è impostata su1.
Consigli
Questa opzione è un'opzione avanzata e deve essere modificata solo da un professionista esperto del database.
Il valore predefinito di 5 è un punto iniziale, non una raccomandazione. Nei sistemi SQL Server moderni, generarlo può essere utile per mantenere le query OLTP più piccole in esecuzione con piani seriali. Usare piccoli incrementi e osservare un ciclo di business completo prima di apportare ulteriori modifiche. Se necessario, eseguire il test dell'applicazione con valori superiori e inferiori per ottimizzare le prestazioni.
Annotazioni
Nel database SQL di Azure non è possibile impostare cost threshold for parallelism. Usare MAXDOP invece per controllare il parallelismo. Per altre informazioni, vedere Modifica di MAXDOP predefinito nel database SQL di Azure e in Istanza gestita di SQL di Azure.
In alcuni casi, è possibile scegliere un piano parallelo anche se il costo del piano della query è minore del valore corrente cost threshold for parallelism . La decisione di usare un piano parallelo o seriale si basa su una stima dei costi fornita in precedenza nel processo di ottimizzazione. Per altre informazioni, vedere Guida sull'architettura di elaborazione delle query.
Osservazioni:
Per verificare se l'opzione di configurazione del cost threshold for parallelism server è impostata su un valore troppo alto o troppo basso per il carico di lavoro, cercare gli indicatori seguenti.
| Soglia dei costi per l'impostazione del parallelismo | Description |
|---|---|
| Troppo basso | - Troppe query con luce CPU vengono eseguite in parallelo. - In Query Store molti piani sono is_parallel_plan impostati su 1.- CXPACKET e CXCONSUMER dominano le statistiche relative al tipo di attesa. Potresti anche vedere THREADPOOL e SOS_SCHEDULER_YIELD aspettare. |
| Troppo alto | - Le query con utilizzo elevato della CPU del carico di lavoro non sono sufficienti e l'utilizzo della CPU è superiore a quello ottimale di conseguenza. - SOS_SCHEDULER_YIELD domina le statistiche relative al tipo di attesa. |
Autorizzazioni
Le autorizzazioni di esecuzione per sp_configure senza alcun parametro o solo con il primo parametro vengono assegnate per impostazione predefinita a tutti gli utenti. Per eseguire sp_configure con entrambi i parametri per la modifica di un'opzione di configurazione o per l'esecuzione dell'istruzione RECONFIGURE, a un utente deve essere concessa l'autorizzazione a livello di server ALTER SETTINGS. L'autorizzazione ALTER SETTINGS è assegnata implicitamente ai ruoli predefiniti del serversysadmin e serveradmin.
Usare SQL Server Management Studio
In Esplora oggetti fare clic con il pulsante destro del mouse su un server e scegliere Proprietà.
Selezionare il nodo Avanzate.
In Parallelismo modificare l'opzione
cost threshold for parallelismimpostando il valore desiderato. Digitare o selezionare un valore compreso tra 0 e 32.767.
Usare Transact-SQL
In questo esempio viene illustrato come usare sp_configure per impostare il valore di cost threshold for parallelism su 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
Per altre informazioni, vedere Opzioni di configurazione del server.
Completamento: Dopo aver configurato l'opzione cost threshold for parallelism
L'impostazione diventa effettiva immediatamente senza dover riavviare il server.