Opção max worker threads

Use a opção max worker threads para configurar o número de threads de trabalho disponível para os processos do Microsoft SQL Server. O SQL Server usa os serviços de thread nativos dos sistemas operacionais Microsoft Windows 2000 e Windows Server 2003 de forma que um ou mais threads dê suporte a cada rede que o SQL Server dá suporte simultaneamente, outro thread controla pontos de verificação de banco de dados e um Thread pooling lida com todos os usuários.

Finalidade da opção max worker threads

O thread pooling ajuda a aperfeiçoar o desempenho quando são conectados grandes números de clientes ao servidor. Normalmente, é criado um thread de sistema operacional separado para cada solicitação de consulta. Porém, com centenas de conexões para o servidor, usam um thread por solicitação de consulta pode consumir quantias grandes de recursos do sistema. A opção max worker threads habilita o SQL Server a criar um pool de threads de trabalho para atender a um número maior de solicitações de consulta, o que melhora o desempenho.

Calculando o máximo de threads de trabalho

O valor padrão para max worker threads, 0, permite ao SQL Server configurar automaticamente o número de threads de trabalho ao iniciar. Essa configuração é melhor para a maioria dos sistemas; porém, dependendo de sua configuração de sistema, definir max worker threads como um valor específico, às vezes, melhora o desempenho.

A tabela a seguir mostra o número configurado automaticamente de máximo de threads de trabalho para várias combinações de CPUs e versões do SQL Server.

Número de CPUs

Computador de 32 bits

Computador de 64 bits

<= 4 processadores

256

512

8 processadores

288

576

16 processadores

352

704

32 processadores

480

960

Observação sobre cuidadosCuidado

Nós recomendamos 1024 como o máximo para o SQL Server de 32 bits.

Quando o número real de solicitação de consulta é menor que a quantia definida em max worker threads, um thread controla cada solicitação de consulta. Porém, se o número real de solicitação de consulta exceder a quantia definida em max worker threads, o SQL Server fará o pool dos threads de trabalho de forma que próximo thread de trabalho disponível possa controlar a solicitação.

Atualizando a partir do SQL Server 2000

A configuração padrão de max worker threads no SQL Server 2000 era 255. Atualizar uma instância do SQL Server 2000 Mecanismo de Banco de Dados para uma versão mais nova reterá o valor da configuração para max worker threads. Ao atualizar, recomendamos alterar o valor da nova instância max worker threads para 0, para permitir que o Mecanismo de Banco de Dados calcule o melhor número de threads.

Definindo o máximo de threads de trabalho

A opção max worker threads é uma opção avançada. Se você estiver usando o procedimento armazenado no sistema sp_configure para alterar a configuração, você poderá alterar max worker threads só quando show advanced options estiver definida como 1. O sistema deve ser reiniciado para que a nova configuração entre em vigor.

ObservaçãoObservação

Quando todos os threads de trabalho estiverem ativos com a execução de consultas muito longas, o SQL Server pode parecer não estar respondendo até que um thread de trabalho complete e torne-se disponível. Embora não seja um defeito, isto às vezes pode ser indesejável. Se um processo parecer ser não estar respondendo e nenhuma nova consulta possa ser processada, então conecte ao SQL Server que usa a conexão de administrador dedicada (DAC) e elimine o processo. Para evitar isto, aumente o número de máximo threads de trabalho.