Compartilhar via


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

Aplica-se: SQL Server

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. A cost threshold for parallelism opção especifica o limite no qual o SQL Server cria e executa planos paralelos para consultas. O 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 é maior que o valor definido no 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 cost threshold for parallelism opção pode ser definida para 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. Definido cost threshold for parallelism apenas em multiprocessadores simétricos.

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

  • Seu computador só tem 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 é 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 decodifica e executa instruções. Um núcleo de 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 determinados casos, um plano paralelo pode ser escolhido mesmo que o plano de custo da consulta seja menor que o valor atual 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 seja adequado para a maioria dos 5 sistemas, um valor diferente pode ser apropriado. 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 cost threshold for parallelism opção 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

EXECUTE sp_configure 'show advanced options', 1;
GO

RECONFIGURE;
GO

EXECUTE sp_configure 'cost threshold for parallelism', 10;
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: depois de configurar o limite de custo para a opção de paralelismo

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