max worker threads (opción)
Use la opción max worker threads para configurar el número de subprocesos de trabajo disponibles para los procesos de Microsoft SQL Server. SQL Server usa los servicios de subprocesos nativos de los sistemas operativos Microsoft Windows 2000 y Windows Server 2003 de forma que uno o varios subprocesos admitan cada red compatible con SQL Server de forma simultánea, otro subproceso controle los puntos de comprobación de la base de datos y un grupo de subprocesos controle a todos los usuarios.
Objetivo de la opción max worker threads
La agrupación de subprocesos permite optimizar el rendimiento cuando un gran número de clientes se conecta al servidor. Normalmente, se crea un subproceso del sistema operativo independiente para cada solicitud de la consulta. Sin embargo, cuando hay cientos de conexiones al servidor, el uso de un subproceso por solicitud de consulta puede consumir grandes cantidades de recursos del sistema. La opción max worker threads permite que SQL Server cree un grupo de subprocesos de trabajo para atender un gran número de solicitudes de consulta, lo que mejora el rendimiento.
Cálculo de max worker threads
El valor predeterminado de max worker threads (0) permite a SQL Server configurar automáticamente el número de subprocesos de trabajo al inicio. Este valor es óptimo para la mayoría de los sistemas; no obstante, según la configuración del sistema, el uso de un valor específico para max worker threads puede mejorar el rendimiento en algunos casos.
La siguiente tabla muestra el número configurado automáticamente de max worker threads para diferentes combinaciones de CPU y versiones de SQL Server.
Número de CPU |
Equipo de 32 bits |
Equipo de 64 bits |
---|---|---|
<= 4 procesadores |
256 |
512 |
8 procesadores |
288 |
576 |
16 procesadores |
352 |
704 |
32 procesadores |
480 |
960 |
Advertencia |
---|
Se recomienda un valor máximo de 1024 como máximo para SQL Server de 32 bits. |
Si el número real de solicitudes de consulta es inferior al número establecido en la opción max worker threads, un subproceso controla cada solicitud de consulta. Sin embargo, si el número real de solicitudes de consulta es superior al número establecido en max worker threads, SQL Server agrupa los subprocesos de trabajo de manera que el siguiente subproceso de trabajo disponible pueda controlar la solicitud.
Actualizar desde SQL Server 2000
La configuración predeterminada de max worker threads en SQL Server 2000 fue 255. Al actualizar una instancia de SQL Server 2000 Motor de base de datos a una versión más reciente se conserva el valor de configuración para max worker threads. Durante la actualización, se recomienda cambiar el valor de la nueva instancia max worker threads a 0, para que Motor de base de datos pueda calcular el número óptimo de subprocesos.
Establecer max worker threads
La opción max worker threads es una opción avanzada. Si va a usar el procedimiento almacenado del sistema sp_configure para cambiar la configuración, solo podrá cambiar el valor de max worker threads si Mostrar opciones avanzadas está establecido en 1. Se debe reiniciar el sistema para que el nuevo valor surta efecto.
Nota
Si todos los subprocesos de trabajo están activos con consultas de ejecución prolongada, puede parecer que SQL Server no responde hasta que finaliza un subproceso de trabajo y vuelve a estar disponible. Aunque no se trata de un defecto, puede que a veces este comportamiento no sea deseable. Si un proceso parece no responder y no se pueden procesar nuevas consultas, conecte a SQL Server mediante la conexión de administrador dedicada (DAC) y finalice el proceso. Para impedir este comportamiento, aumente el número máximo de subprocesos de trabajo.