Compartilhar via


Configuração do servidor: limite de custo para paralelismo

Aplica-se a:SQL ServerInstância Gerenciada de SQL do Azure

Este artigo descreve como configurar a opção cost threshold for parallelism de configuração do servidor no SQL Server usando o SQL Server Management Studio ou Transact-SQL.

Sobre o limite de custo para paralelismo

A cost threshold for parallelism opção especifica o limite no qual o SQL Server considera planos paralelos em computadores com mais de um processador lógico. A cost threshold for parallelism opção pode ser definida como qualquer valor de 0 a 32.767.

O custo é a soma dos custos estimados do operador em um plano de consulta (por exemplo, CPU e E/S). É uma medida relativa usada apenas para a seleção do plano; ele não mede o runtime real.

Determinados componentes Transact-SQL podem inibir um plano paralelo. Por exemplo, UDFs (funções escalares) escalares não embutidas, modificações de variáveis de tabela e determinadas chamadas do sistema. O SQL Server avalia alternativas paralelas somente quando o custo estimado do melhor plano serial excede o cost threshold for parallelism valor e, em seguida, pode escolher um plano paralelo mais barato.

Limitações

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

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

  • Apenas um processador lógico está disponível para o SQL Server devido à configuração de affinity mask.

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

Recomendações

Essa opção é uma opção avançada e deve ser alterada apenas por um profissional de banco de dados experiente.

O valor padrão é um ponto de 5 partida, não uma recomendação. Em sistemas modernos do SQL Server, elevá-lo pode ajudar a manter consultas OLTP menores em execução com planos serial. Use pequenos incrementos e observe um ciclo de negócios completo antes de novas alterações. Execute testes de aplicativos com valores superiores e inferiores, se necessário, para otimizar o desempenho do aplicativo.

Observação

No Banco de Dados SQL do Azure, você não pode definir cost threshold for parallelism. Use MAXDOP para controlar o paralelismo. Para obter mais informações, consulte Como alterar o MAXDOP padrão no Banco de Dados SQL do Azure e na Instância Gerenciada de SQL do Azure.

Em determinados casos, um plano paralelo pode ser escolhido mesmo que o custo do plano da consulta seja menor que o valor atual cost threshold for parallelism . A decisão de usar um plano paralelo ou serial baseia-se 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.

Observações

Para ver se a opção de configuração do cost threshold for parallelism servidor está definida como muito alta ou muito baixa para sua carga de trabalho, procure os indicadores a seguir.

Limite de custo para a configuração de paralelismo Description
Muito baixo - Muitas consultas de luz de CPU são paralelas.

- No Repositório de Consultas, muitos planos foram is_parallel_plan definidos como 1.

- CXPACKET e CXCONSUMER dominar as estatísticas de tipo de espera. Você também pode ver THREADPOOL e SOS_SCHEDULER_YIELD aguardar.
Muito alto - Não basta as consultas pesadas de CPU da carga de trabalho forem paralelas e a utilização da CPU for maior do que a ideal como resultado.

- SOS_SCHEDULER_YIELD domina as estatísticas de tipo de espera.

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 cost threshold for parallelism para o valor desejado. Digite ou selecione um valor de 0 a 32.767.

Usar o Transact-SQL

Este exemplo mostra como usar sp_configure para definir o valor como cost threshold for parallelism20.

USE master;
GO

EXECUTE sp_configure 'show advanced options', 1;
GO

RECONFIGURE;
GO

EXECUTE sp_configure 'cost threshold for parallelism', 20;
GO

RECONFIGURE;
GO

EXECUTE sp_configure 'show advanced options', 0;
GO

RECONFIGURE;
GO

Para obter mais informações, consulte Opções de configuração do servidor.

Acompanhamento: Após configurar a opção de limite de custo para paralelismo

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