Partilhar via


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

Aplica-se a:SQL ServerAzure SQL Managed Instance

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

Sobre o limiar de custo para execução paralela

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 para qualquer valor de 0 a 32.767.

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 de planos; ele não mede o tempo de execução real.

Certos componentes Transact-SQL podem inibir um plano paralelo. Por exemplo, UDFs (funções definidas pelo usuário) escalares não alinháveis, 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 cost threshold for parallelism valor nas seguintes condições:

  • O seu computador tem apenas um processador lógico.

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

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

Recommendations

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

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

Observação

No Banco de Dados SQL do Azure, não é possível definir cost threshold for parallelism. Utilize MAXDOP para controlar o paralelismo em vez disso. Para obter mais informações, consulte Alterando o MAXDOP padrão no Banco de Dados SQL do Azure e na Instância Gerenciada SQL do Azure.

Em certos casos, um plano paralelo pode ser escolhido mesmo que o custo do plano da consulta seja menor do que o valor atual cost threshold for parallelism . A decisão de usar um plano paralelo ou serial é baseada em uma estimativa de custo fornecida anteriormente no processo de otimização. Para obter mais informações, consulte o Guia de 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 seguintes indicadores.

Limite de custo para a definição de paralelismo Description
Muito baixo - Muitas consultas pouco exigentes para a CPU são executadas em paralelo.

- Na Loja de Consultas, muitos planos têm is_parallel_plan definidos como 1.

- CXPACKET e CXCONSUMER dominam as estatísticas de tipo de espera. Você também pode ver THREADPOOL e SOS_SCHEDULER_YIELD esperar.
Muito alto - Não há consultas pesadas da carga de trabalho que vão suficientemente em paralelo, e por isso a utilização da CPU é maior do que o ideal.

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

Permissions

As permissões de execução em sp_configure sem parâmetros ou apenas com o primeiro parâmetro 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 RECONFIGURE instrução, um usuário deve receber a permissão no nível do ALTER SETTINGS servidor. As funções fixas de servidor ALTER SETTINGS e serveradmin mantêm implicitamente a permissão.

Utilize 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 Avançado.

  3. Em Paralelismo, altere a cost threshold for parallelism opção para o valor desejado. Digite ou selecione um valor de 0 a 32.767.

Utilize o Transact-SQL

Este exemplo mostra como usar sp_configure para definir o valor de cost threshold for parallelism para 20.

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 Server.

Acompanhamento: Depois de configurar o limite de custo para a opção de paralelismo

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