Opzione cost threshold for parallelism
L'opzione cost threshold for parallelism consente di specificare la soglia in corrispondenza della quale Microsoft SQL Server crea ed esegue piani paralleli per le query. In SQL Server viene creato ed eseguito un piano parallelo solo quando il costo stimato per l'esecuzione di un piano seriale per la stessa query è superiore al valore impostato nell'opzione cost threshold for parallelism. Il costo equivale al tempo (in secondi) stimato per l'esecuzione del piano seriale in una configurazione hardware specifica. Impostare l'opzione cost threshold for parallelism esclusivamente in sistemi basati su multiprocessori simmetrici.
I vantaggi derivanti dall'esecuzione di piani paralleli sono in genere più evidenti con query di lunga durata. Il tempo aggiuntivo necessario per l'inizializzazione, la sincronizzazione e il completamento dei piani paralleli viene recuperato grazie al miglioramento generale delle prestazioni. L'opzione cost threshold for parallelism viene utilizzata con efficacia quando si esegue un insieme di query sia di breve che di lunga durata. Per le query brevi vengono utilizzati piani seriali, mentre per le query che richiedono più tempo vengono utilizzati piani paralleli. Il valore dell'opzione cost threshold for parallelism indica il limite entro il quale le query vengono considerate brevi e di conseguenza eseguite utilizzando piani seriali.
In determinati casi il piano parallelo viene scelto anche se il piano costi di una query risulta inferiore al valore corrente di cost threshold for parallelism. La scelta tra piano parallelo o seriale è infatti basata su una stima dei costi elaborata prima del completamento dell'ottimizzazione.
L'opzione cost threshold for parallelism può essere impostata su qualsiasi valore compreso tra 0 e 32767. Il valore predefinito è 5.
In SQL Server il valore dell'opzione cost threshold for parallelism verrà ignorato nei casi seguenti:
Il computer in uso è dotato di un solo processore.
È disponibile una sola CPU per SQL Server in conseguenza dell'opzione di configurazione affinity mask.
L'opzione max degree of parallelism è impostata su 1.
Nota
Se si utilizza l'opzione di query MAXDOP, SQL Server non ignorerà il valore cost-threshold-for-parallelism.
cost threshold for parallelism è un'opzione avanzata. Se per modificare l'impostazione si utilizza la stored procedure di sistema sp_configure, sarà possibile modificare cost threshold for parallelism solo quando il valore di show advanced options è impostato su 1. L'impostazione diventa effettiva immediatamente senza dover riavviare il server.
Esempio
Nell'esempio seguente il valore dell'opzione cost threshold for parallelism viene impostato su 10 secondi.
sp_configure 'show advanced options', 1;
GO
reconfigure;
GO
sp_configure 'cost threshold for parallelism', 10;
GO
reconfigure;
GO