Configure the cost threshold for parallelism (opção de configuração do servidor)

Aplica-se a:SQL Server

Este artigo descreve como configurar a opção de configuração de servidor cost threshold for parallelism no SQL Server usando o SQL Server Management Studio ou o Transact-SQL. A opção cost threshold for parallelism especifica o limite no qual o SQL Server cria e executa planos paralelos para consultas. SQL Server cria e executa um plano paralelo para uma consulta somente quando o custo estimado para executar um plano serial para a mesma consulta é mais alto que o valor definido em cost threshold for parallelism. O custo refere-se a um custo estimado, exigido para a execução do plano serial em uma configuração de hardware específica, e não é uma unidade de tempo. A opção cost threshold for parallelism pode ser definida como qualquer valor de 0 a 32767.

Limitações

O custo refere-se a uma unidade abstraída do custo, e não a uma unidade de tempo estimado. Defina apenas cost threshold for parallelism em multiprocessadores simétricos.

SQL Server ignora o valor do cost threshold for parallelism nas seguintes condições:

  • Seu computador só tem um processador lógico.

  • Só um único processador lógico está disponível para o SQL Server devido à opção de configuração máscara de afinidade .

  • A opção max degree of parallelism está definida como 1.

Um processador lógico é a unidade básica de hardware de processador que permite que o sistema operacional despache uma tarefa ou execute um contexto de thread. Cada processador lógico pode executar somente um contexto de thread de cada vez. O núcleo do processador é o circuito que fornece capacidade para decodificar e executar instruções. O núcleo de um processador pode conter um ou mais processadores lógicos. A consulta Transact-SQL a seguir pode ser usada para obter informações de CPU para o sistema.

SELECT (cpu_count / hyperthread_ratio) AS PhysicalCPUs,
    cpu_count AS logicalCPUs
FROM sys.dm_os_sys_info;

Recomendações

  • Esta é uma opção avançada e deve ser alterada somente por um administrador de banco de dados experiente ou por um profissional de SQL Server certificado.

  • Em certos casos, pode ser escolhido um plano paralelo, embora o plano de custo da consulta seja menor do que o valor atual do cost threshold for parallelism . Isso pode acontecer pois a decisão de usar um plano paralelo ou serial tem base em uma estimativa de custo fornecida anteriormente no processo de otimização. Para obter mais informações, confira o Guia da Arquitetura de Processamento de Consultas.

  • Embora o valor padrão de 5 seja adequado para a maioria dos sistemas, um valor diferente pode ser adequado. Execute testes de aplicativos com valores superiores e inferiores, se necessário, para otimizar o desempenho do aplicativo.

Permissões

Permissões de execução sem parâmetros ou com apenas o primeiro parâmetro em sp_configure são concedidas a todos os usuários por padrão. Para executar sp_configure com ambos os parâmetros para alterar uma opção de configuração ou executar a instrução RECONFIGURE, o usuário deve ter a permissão ALTER SETTINGS no nível do servidor. A permissão ALTER SETTINGS é implicitamente mantida pelas funções de servidor fixas sysadmin e serveradmin .

Usar o SQL Server Management Studio

  1. No Pesquisador de Objetos, clique com o botão direito do mouse em um servidor e selecione Propriedades.

  2. Selecione o nó Avançado.

  3. Em Paralelismo, altere a opção Limite de Custo para Paralelismo para o valor desejado. Digite ou selecione um valor de 0 a 32767.

Usar o Transact-SQL

Este exemplo mostra como usar sp_configure para definir o valor da opção cost threshold for parallelism como 10.

USE master;
GO
EXEC sp_configure 'show advanced options', 1;
GO
RECONFIGURE
GO
EXEC sp_configure 'cost threshold for parallelism', 10;
GO
RECONFIGURE
GO

Para obter mais informações, confira Opções de configuração do servidor (SQL Server).

Acompanhamento: depois de configurar a opção cost threshold for parallelism

A configuração entra em vigor imediatamente sem reiniciar o servidor.