Opzione max worker threads

Data aggiornamento: 5 dicembre 2005

Utilizzare l'opzione max worker threads per configurare il numero di thread di lavoro disponibili per i processi di Microsoft SQL Server. SQL Server utilizza i servizi per thread nativi dei sistemi operativi Microsoft Windows 2000 e Windows Server 2003 in modo che uno o più thread supportino ogni rete che SQL Server supporta simultaneamente, un altro thread gestisca i checkpoint del database e un pool di thread gestisca tutti gli utenti.

Scopi dell'opzione max worker threads

La creazione di un pool di thread consente di ottimizzare le prestazioni quando al server è connesso un numero elevato di client. In genere per ridurre l'utilizzo di risorse di sistema, viene creato un thread del sistema operativo distinto per ogni connessione client. In presenza, tuttavia, di centinaia di connessioni al server, l'utilizzo di un thread per connessione può occupare quantità elevate di risorse di sistema. L'opzione max worker threads consente di migliorare le prestazioni di SQL Server grazie alla creazione di un pool di thread di lavoro per soddisfare una maggiore quantità di connessioni client.

Calcolo del valore max worker threads

Il valore predefinito di max worker threads, 0, consente la configurazione automatica del numero di thread di lavoro all'avvio di SQL Server. Benché questa impostazione sia quella ottimale per la maggior parte dei sistemi, a seconda della configurazione del sistema l'impostazione di un valore specifico per max worker threads consente talvolta di ottenere prestazioni migliori.

Nella tabella seguente viene descritto il numero massimo di thread di lavoro configurato automaticamente per diverse combinazioni di CPU e versioni di SQL Server.

Numero di CPU Computer a 32 bit Computer a 64 bit

<= 4 processori

256

512

8 processori

288

576

16 processori

352

704

32 processori

480

960

[!NOTA] È consigliabile utilizzare 1024 come valore massimo per le versioni di SQL Server a 32 bit e 2048 per le versioni di SQL Server a 64 bit.

Quando il numero effettivo di connessioni utente è inferiore al valore di max worker threads, viene assegnato un thread per la gestione di ogni connessione. Se, tuttavia, il numero effettivo di connessioni supera il valore impostato per max worker threads, tramite SQL Server i thread di lavoro vengono riuniti in un pool. In questo modo, le richieste possono essere gestite dal primo thread di lavoro disponibile.

Aggiornamento da SQL Server 2000

L'impostazione predefinita di max worker threads in SQL Server 2000 è 255. Aggiornando un'istanza di Motore di database di SQL Server 2000 a SQL Server 2005, il valore di configurazione di max worker threads viene mantenuto. Quando si esegue l'aggiornamento, è consigliabile impostare il valore max worker threads di SQL Server 2005 su 0, in modo che Motore di database possa calcolare il numero di thread ottimale.

Impostazione dell'opzione max worker threads

max worker threads è un'opzione avanzata. Se per modificare l'impostazione si utilizza la stored procedure di sistema sp_configure, è possibile modificare max worker threads solo quando il valore di show advanced options è impostato su 1. Per rendere effettiva la nuova impostazione, è necessario riavviare il sistema.

[!NOTA] Quando tutti i thread di lavoro sono attivi con query a esecuzione prolungata, SQL Server potrebbe non rispondere fino a quando un thread di lavoro non viene completato e diventa disponibile. Benché non si tratti di un difetto, questo comportamento può talvolta risultare indesiderato. Se un processo non risponde e non è possibile elaborare alcuna query, connettersi a SQL Server utilizzando la connessione DAC e terminare il processo. Per evitare questo problema, aumentare il numero massimo di thread di lavoro.

Vedere anche

Attività

Procedura: Utilizzo della connessione amministrativa dedicata con SQL Server Management Studio

Concetti

Impostazione delle opzioni di configurazione del server
Utilizzo di una connessione amministrativa dedicata

Altre risorse

RECONFIGURE (Transact-SQL)
sp_configure (Transact-SQL)

Guida in linea e informazioni

Assistenza su SQL Server 2005

Cronologia modifiche

Versione Cronologia

5 dicembre 2005

Nuovo contenuto:
  • Aggiunta della sezione Aggiornamento da SQL Server 2000.