Condividi tramite


Opzione max degree of parallelism

Quando SQL Server viene eseguito in un computer con più microprocessori o CPU, viene rilevato il grado di parallelismo migliore, ovvero il numero di processori utilizzati per eseguire una singola istruzione per l'esecuzione di ogni piano parallelo. È possibile utilizzare l'opzione max degree of parallelism per limitare il numero di processori da utilizzare nell'esecuzione di piani paralleli. Con il valore predefinito 0 vengono utilizzati tutti i processori disponibili, ovvero fino a 64 CPU. Impostare max degree of parallelism su 1 per evitare la generazione di piani paralleli. Impostare il valore su un numero maggiore di 1, fino a un massimo di 64, per limitare il numero massimo di processori utilizzati per l'esecuzione di una singola query. Se viene specificato un valore maggiore di quello dei processori disponibili, verrà utilizzato il numero effettivo di processori disponibili. Se il computer dispone di un unico processore, il valore di max degree of parallelism viene ignorato.

Sostituzione del valore di max degree of parallelism

SQL Server valuta i piani di esecuzione parallela per le query, le operazioni DLL (Data Definition Language) sugli indici e il popolamento dei cursori statici e gestiti da keyset. Per ulteriori informazioni sull'esecuzione parallela, vedere Grado di parallelismo.

È possibile sostituire il valore di max degree of parallelism nelle query specificando l'hint per la query MAXDOP nell'istruzione per la query. Per ulteriori informazioni, vedere Hint per la query (Transact-SQL).

Le operazioni tramite cui viene creato o ricostruito un indice o eliminato un indice cluster possono richiedere un elevato utilizzo di risorse. È possibile sostituire il valore di max degree of parallelism per le operazioni sugli indici specificando l'opzione per gli indici MAXDOP nell'istruzione per l'indice. Il valore MAXDOP viene applicato all'istruzione al momento dell'esecuzione e non viene archiviato nei metadati dell'indice. Per ulteriori informazioni, vedere Configurazione di operazioni a indici paralleli.

Oltre al parallelismo delle query e delle operazioni sugli indici, questa opzione controlla anche il parallelismo dei controlli DBCC CHECKTABLE, DBCC CHECKDB e DBCC CHECKFILEGROUP. È possibile disabilitare i piani di esecuzione parallela per tali istruzioni utilizzando il flag di traccia 2528. Per ulteriori informazioni, vedere Flag di traccia (Transact-SQL).

[!NOTA]

Se l'opzione affinity mask non è impostata sul valore predefinito, il numero di processori disponibili per SQL Server in sistemi SMP (multiprocessori simmetrici, Symmetric Multiprocessor) potrebbe risultare ridotto.

Impostazione dell'opzione max degree of parallelism

max degree of parallelism è un'opzione avanzata. Se si utilizza la stored procedure di sistema sp_configure per modificare l'impostazione, sarà possibile modificare max degree of parallelism solo quando il valore di show advanced options è impostato su 1. L'impostazione diventa effettiva immediatamente e non richiede il riavvio del servizio MSSQLSERVER.

Nell'esempio seguente l'opzione max degree of parallelism è impostata su 8.

sp_configure 'show advanced options', 1;
GO
RECONFIGURE WITH OVERRIDE;
GO
sp_configure 'max degree of parallelism', 8;
GO
RECONFIGURE WITH OVERRIDE;
GO

Per ulteriori informazioni sull'impostazione del valore dell'opzione max degree of parallelism in SQL Server Management Studio, vedere Procedura: Configurazione del numero di processori disponibili per query parallele (SQL Server Management Studio).