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 como1
.
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
No Pesquisador de Objetos, clique com o botão direito do mouse em um servidor e selecione Propriedades.
Selecione o nó Avançado.
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.