Configurazione del server: soglia dei costi per il parallelismo
Si applica a: SQL Server
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. L'opzione cost threshold for parallelism
specifica la soglia in corrispondenza della quale SQL Server crea ed esegue piani paralleli per le query. SQL Server crea ed esegue un piano parallelo per una query solo quando il costo stimato per eseguire un piano seriale per la stessa query è superiore al valore impostato in cost threshold for parallelism
. Si tratta del costo stimato per l'esecuzione del piano seriale in una configurazione hardware specifica e non è riferito a una determinata unità di tempo. L'opzione cost threshold for parallelism
può essere impostata su qualsiasi valore compreso tra 0 e 32767.
Limiti
Il costo indica un'unità di costo astratto e non un'unità di tempo stimata. Impostato cost threshold for parallelism
solo su multiprocessori simmetrici.
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 mask
di configurazione.L'opzione
max degree of parallelism
è impostata1
su .
Un processore logico è l'unità di base dell'hardware del processore che consente al sistema operativo di inviare un'attività o eseguire un contesto di thread. Ogni processore logico può eseguire un solo contesto di thread per volta. Il core del processore è il circuito che decodifica ed esegue istruzioni. Un core del processore può contenere uno o più processori logici. La query Transact-SQL seguente può essere usata per l'acquisizione di informazioni sulla CPU del sistema.
SELECT (cpu_count / hyperthread_ratio) AS PhysicalCPUs,
cpu_count AS logicalCPUs
FROM sys.dm_os_sys_info;
Consigli
Questa opzione è avanzata e la relativa modifica è riservata ad amministratori di database esperti o a professionisti con certificazione per SQL Server.
In alcuni casi, è possibile scegliere un piano parallelo anche se il piano di costo della query è minore del valore corrente cost threshold for parallelism
. La scelta tra piano parallelo o seriale è infatti basata su una stima dei costi fornita in precedenza nell'ottimizzazione. Per altre informazioni, vedere Guida sull'architettura di elaborazione delle query.
Anche se il valore predefinito di è adeguato per la maggior parte dei 5
sistemi, potrebbe essere appropriato un valore diverso. Se necessario, eseguire il test dell'applicazione con valori superiori e inferiori per ottimizzare le prestazioni.
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 parallelism
impostando il valore desiderato. Digitare o selezionare un valore compreso tra 0 e 32767.
Usare Transact-SQL
Questo esempio illustra come usare sp_configure per impostare il valore dell'opzione cost threshold for parallelism
su 10
.
USE master;
GO
EXECUTE sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
EXECUTE sp_configure 'cost threshold for parallelism', 10;
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.