Configure the max degree of parallelism (opção de configuração do servidor)

Aplica-se a:SQL Server

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

Observação

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

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

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

Antes de começar

Consideraçõ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.

  • 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 SMP (multiprocessamento simétrico).

  • A definição do MAXDOP (grau máximo de paralelismo) como 0 permite que o SQL Server use todos os processadores disponíveis, até 64 processadores. No entanto, esse não é o valor recomendado para a maioria dos casos. Para saber mais sobre os valores recomendados para o grau máximo de paralelismo, confira a seção de 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 somente uma execução de consulta. Se um valor maior do que o número de processadores disponíveis for especificado, o número real de processadores disponíveis será usado. Se o computador tiver apenas um processador, o valor de max degree of parallelism será ignorado.

  • O limite do grau máximo de paralelismo é definido por tarefa. Não é um limite por solicitação ou por consulta. Isso significa que durante uma execução de consulta paralela, uma solicitação poderá gerar várias tarefas até o limite do MAXDOP, e cada tarefa usará um trabalho e um agendador. Para obter mais informações, confira a seção Como agendar tarefas paralelas no Guia de arquitetura de threads e tarefas.

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

  • As operações de índice que criam ou reconstroem um índice ou descartam um índice clusterizado podem usar muitos recursos. Você pode substituir o valor max degree of parallelism das operações de índice especificando a opção de índice MAXDOP na instrução de índice. O valor MAXDOP é aplicado à instrução no 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 das consultas e das operações de índice, essa opção também controla o paralelismo de DBCC CHECKTABLE, DBCC CHECKDB e DBCC CHECKFILEGROUP. É possível desabilitar a execução paralela de planos para essas instruções usando o sinalizador de rastreamento 2528. Para obter mais informações, confira Sinalizadores de rastreamento (Transact-SQL).

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

Recomendações

A partir do SQL Server 2016 (13.x), durante a inicialização do serviço, se o Mecanismo de Banco de Dados detectar mais de oito núcleos por nó NUMA ou soquete na inicialização, os nós soft-NUMA serão criados automaticamente por padrão. O Mecanismo de Banco de Dados coloca os processadores lógicos do mesmo núcleo físico em nós soft-NUMA diferentes. 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 melhorará o desempenho das consultas e a distribuição de threads de trabalho em todos os nós NUMA para a carga de trabalho. Para obter mais informações, veja Soft-NUMA.

A partir do SQL Server 2016 (13.x), use as seguintes diretrizes ao configurar o valor de configuração de servidor max degree of parallelism:

Configuração de Servidor Número de processadores Orientação
Servidor com um único nó NUMA Menor ou igual a oito processadores lógicos Manter MAXDOP com o mesmo número ou abaixo do número de processadores lógicos
Servidor com um único nó NUMA 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 por nó NUMA Manter MAXDOP com o mesmo número ou abaixo do número de processadores lógicos por nó NUMA
Servidor com vários nós NUMA Mais de 16 processadores lógicos por nó NUMA Manter MAXDOP em metade do número de processadores lógicos por nó NUMA com um valor MAX de 16

Observação

O nó NUMA na tabela acima 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 caso soft-NUMA tenha sido desabilitado. Use essas mesmas diretrizes ao definir a opção grau máximo de paralelismo para os grupos de carga de trabalho Resource Governor. Para obter mais informações, veja CREATE WORKLOAD GROUP (Transact-SQL).

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

Configuração de Servidor Número de processadores Orientação
Servidor com um único nó NUMA Menor ou igual a oito processadores lógicos Manter MAXDOP com o mesmo número ou abaixo do número de processadores lógicos
Servidor com um único nó NUMA Mais de oito processadores lógicos Manter MAXDOP em 8
Servidor com vários nós NUMA Menor ou igual a oito processadores lógicos por nó NUMA Manter MAXDOP com o mesmo número ou abaixo do número 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

Segurança

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 ou o Azure Data Studio

No Azure Data Studio, instale a extensão Database Admin Tool Extensions for Windows ou use o método T-SQL abaixo.

Configurar a opção max degree of parallelism

Essas opções alteram o MAXDOP para a 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 de plano paralelo.

Usar o Transact-SQL

Configurar a opção max degree of parallelism com T-SQL

  1. Conecte-se ao Mecanismo de Banco de Dados com o SQL Server Management Studio ou o Azure Data 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 o sp_configure para configurar a opção max degree of parallelism como 16.

USE AdventureWorks2022;  
GO   
EXEC sp_configure 'show advanced options', 1;  
GO  
RECONFIGURE WITH OVERRIDE;  
GO  
EXEC sp_configure 'max degree of parallelism', 16;  
GO  
RECONFIGURE WITH OVERRIDE;  
GO  

Para obter mais informações, confira Opções de configuração do servidor (SQL Server).

Acompanhamento: depois de configurar a opção max degree of parallelism

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