Partilhar via


Configuração do servidor: grau máximo de paralelismo

Aplica-se a:SQL Server

Este artigo descreve como configurar a opção de configuração do servidor (max degree of parallelism) no SQL Server usando o MAXDOP SQL Server Management Studio ou o Transact-SQL. Quando uma instância do SQL Server é executada em um computador que tem mais de um microprocessador ou CPU, o Mecanismo de Banco de Dados deteta se o paralelismo pode ser usado. O grau de paralelismo define o número de processadores utilizados para executar uma única instrução, para cada execução de plano paralela. Você pode usar a max degree of parallelism opção para limitar o número de processadores a serem usados na execução do plano paralelo. Para obter mais detalhes sobre o limite definido pela max degree of parallelism, consulte a seção Considerações nesta página. O SQL Server considera planos de execução paralela para consultas, operações DDL (linguagem de definição de dados de índice), inserções paralelas, coluna de alteração online, coleta de estatísticas paralelas e população de cursor estática e orientada por conjunto de chaves.

O SQL Server 2019 (15.x) introduziu recomendações automáticas para definir a opção de configuração do max degree of parallelism servidor com base no número de processadores disponíveis durante o processo de instalação. A interface de usuário de configuração permite que você aceite as configurações recomendadas ou insira seu próprio valor. Para obter mais informações, consulte Configuração do Mecanismo de Banco de Dados - página MaxDOP.

No Banco de Dados SQL do Azure, no Banco de Dados SQL no Malha e na Instância Gerenciada SQL do Azure, a configuração padrão MAXDOP para cada novo banco de dados único, banco de dados de pool elástico e instância gerenciada é 8. No Banco de Dados SQL do Azure e no Banco de Dados SQL no Fabric, a configuração do escopo do MAXDOP banco de dados é definida como 8. Na Instância Gerenciada SQL do Azure, a opção de configuração do max degree of parallelism servidor é definida como 8.

Para obter mais informações MAXDOP no Banco de Dados SQL do Azure ou no Banco de Dados SQL no Fabric, consulte Configurar o grau máximo de paralelismo (MAXDOP) no Banco de Dados SQL do Azure e no Banco de Dados SQL no Fabric.

Considerations

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

Se a opção de máscara de afinidade não estiver definida como padrão, ela poderá restringir o número de processadores disponíveis para o SQL Server em sistemas de multiprocessamento simétrico (SMP).

Definir max degree of parallelism para 0 permite que o SQL Server utilize todos os processadores disponíveis, até 64 processadores. No entanto, este não é o valor recomendado para a maioria dos casos. Para obter mais informações sobre os valores recomendados para o grau máximo de paralelismo, consulte a seção Recomendações nesta página.

Para suprimir a geração de planos paralelos, defina max degree of parallelism como 1. Defina o valor como um número de 1 a 32.767 para especificar o número máximo de núcleos de processador que podem ser usados durante uma única execução de consulta. Se for especificado um valor maior do que o número de processadores disponíveis, o número real de processadores disponíveis será usado. Se o computador tiver apenas um processador, o max degree of parallelism valor será ignorado.

O grau máximo de limite de paralelismo é definido por tarefa. Não é um de solicitação por ou por limite de consulta. Isso significa que, durante a execução de uma consulta paralela, uma única solicitação pode gerar várias tarefas até o MAXDOP limite, e cada tarefa usa um trabalhador e um agendador. Para obter mais informações, consulte a seção Agendamento de tarefas paralelas no Guia de arquitetura de threads e tarefas.

Você pode substituir o valor de configuração do grau máximo de paralelismo do servidor:

As operações de índice que criam ou recriam um índice, ou que descartam um índice clusterizado, podem consumir muitos recursos. Você pode substituir o valor do grau máximo de paralelismo para operações de índice especificando a MAXDOP opção de índice na instrução de índice. O MAXDOP valor é aplicado à instrução em tempo de execução e não é armazenado nos metadados do índice. Para obter mais informações, consulte Configurar operações de índice paralelo.

Além de consultas e operações de índice, essa opção também controla o paralelismo de DBCC CHECKTABLE, DBCC CHECKDBe DBCC CHECKFILEGROUP. Você pode desabilitar planos de execução paralela para essas instruções usando o sinalizador de rastreamento 2528. Para obter mais informações, consulte o sinalizador de rastreamento 2528.

O SQL Server 2022 (16.x) introduziu o Feedback do Grau de Paralelismo (DOP), um novo recurso para melhorar o desempenho da consulta, identificando ineficiências de paralelismo para consultas repetidas, com base no tempo decorrido e nas esperas. O feedback DOP faz parte da família de recursos de processamento inteligente de consultas e aborda o uso não ideal do paralelismo para repetir consultas. Para obter informações sobre comentários DOP, visite Comentários sobre o grau de paralelismo (DOP).

Recommendations

No SQL Server 2016 (13.x) e versões posteriores, durante a inicialização do serviço, se o Mecanismo de Banco de Dados detetar mais de oito núcleos físicos por nó NUMA ou soquete na inicialização, os nós NUMA suaves serão criados automaticamente por padrão. O Mecanismo de Banco de Dados coloca processadores lógicos do mesmo núcleo físico em diferentes nós soft-NUMA. As recomendações na tabela a seguir visam manter todos os threads de trabalho de uma consulta paralela dentro do mesmo nó soft-NUMA. Isso melhora o desempenho das consultas e distribui os threads de trabalho entre os nós NUMA, otimizando a carga de trabalho. Para obter mais informações, consulte Soft-NUMA (SQL Server).

No SQL Server 2016 (13.x) e versões posteriores, use as seguintes diretrizes ao configurar o valor de configuração do max degree of parallelism servidor:

Configuração do servidor Número de processadores Guidance
Servidor com nó NUMA único Menor ou igual a oito processadores lógicos Manter MAXDOP em ou sob o # de processadores lógicos
Servidor com nó NUMA único Mais de oito processadores lógicos Manter MAXDOP em 8
Servidor com vários nós NUMA Menor ou igual a 16 processadores lógicos em cada nó NUMA Manter MAXDOP em ou sob o # de processadores lógicos por nó NUMA
Servidor com vários nós NUMA Mais de 16 processadores lógicos por nó NUMA Mantenha MAXDOP pela metade o número de processadores lógicos por nó NUMA com um valor MAX de 16

O nó NUMA na tabela anterior refere-se a nós soft-NUMA criados automaticamente pelo SQL Server 2016 (13.x) e versões superiores, ou nós NUMA baseados em hardware se soft-NUMA estiver desabilitado.

Use essas mesmas diretrizes ao definir a opção de grau máximo de paralelismo para grupos de carga de trabalho do Administrador de Recursos. Para obter mais informações, consulte CREATE WORKLOAD GROUP.

SQL Server 2014 e versões anteriores

Do SQL Server 2008 (10.0.x) ao SQL Server 2014 (12.x), use as seguintes diretrizes ao configurar o valor de configuração do max degree of parallelism servidor:

Configuração do servidor Número de processadores Guidance
Servidor com nó NUMA único Menor ou igual a oito processadores lógicos Manter MAXDOP em ou sob o # de processadores lógicos
Servidor com nó NUMA único Mais de oito processadores lógicos Manter MAXDOP em 8
Servidor com vários nós NUMA Menos ou igual a oito processadores lógicos por nó NUMA Manter MAXDOP em ou sob o # de processadores lógicos por nó NUMA
Servidor com vários nós NUMA Mais de oito processadores lógicos por nó NUMA Manter MAXDOP em 8

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

Essas opções alteram o MAXDOP na instância.

  1. No Pesquisador de Objetos, clique com o botão direito do mouse na instância desejada e selecione Propriedades.

  2. Selecione o nó Avançado.

  3. Na caixa Grau Máximo de Paralelismo , selecione o número máximo de processadores a serem usados na execução do plano paralelo.

Utilize o Transact-SQL

  1. Conecte-se ao Mecanismo de Banco de Dados com o SQL Server Management Studio.

  2. Na barra Padrão, selecione Nova consulta.

  3. Copie e cole o exemplo a seguir na janela de consulta e selecione Executar. Este exemplo mostra como usar sp_configure para configurar a max degree of parallelism opção para 16.

    USE master;
    GO
    
    EXECUTE sp_configure 'show advanced options', 1;
    GO
    
    RECONFIGURE WITH OVERRIDE;
    GO
    
    EXECUTE sp_configure 'max degree of parallelism', 16;
    GO
    
    RECONFIGURE WITH OVERRIDE;
    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 a opção de grau máximo de paralelismo

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