Configurar a opção de configuração de servidor max degree of parallelism

Aplica-se a:yesSQL Server (todas as versões com suporte)

Este tópico descreve como configurar a opção de configuração de servidor MAXDOP (grau máximo de paralelismo) no SQL Server usando o SQL Server Management Studio ou o 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. Você pode usar a opção max degree of parallelism para limitar o número de processadores a serem usados na execução de plano paralela. Para obter mais detalhes sobre o limite definido por MAXDOP (grau máximo de paralelismo) , 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 durante o processo de instalação com base no número de processadores disponíveis. 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 MAXDOP (grau máximo de paralelismo) é 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 com o padrão, poderá restringir o número de processadores disponíveis para SQL Server em sistemas SMP simétricos.

  • 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 plano paralelo, 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 só um processador, o valor grau máximo de paralelismo 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).

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 grau máximo de paralelismo:

Configuração de Servidor Número de processadores Orientação
Servidor com um único nó NUMA Menor ou igual a 8 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 8 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).

Em SQL Server 2008 a SQL Server 2014 (12.x), use as seguintes diretrizes ao configurar o valor de configuração de servidor grau máximo de paralelismo:

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

Como usar o SQL Server Management Studio.

Para configurar a opção max degree of parallelism

  1. No Pesquisador de Objetos, clique com o botão direito do mouse em um servidor e selecione Propriedades.

  2. Clique no 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.

Usando o Transact-SQL

Para configurar a opção max degree of parallelism

  1. Conecte-se ao Mecanismo de Banco de Dados.

  2. Na barra Padrão, clique em Nova Consulta.

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

USE AdventureWorks2012 ;  
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.

Consulte Também

ALTER DATABASE SCOPED CONFIGURATION (Transact-SQL)
Opção affinity mask de configuração de servidor
Opções de configuração do servidor (SQL Server)
sp_configure (Transact-SQL)
Guia de arquitetura de processamento de consultas
Guia de arquitetura de thread e tarefa
Configurar operações paralelas de índice
Dicas de consulta (Transact-SQL)
Definir opções de índice

Próximas etapas

RECONFIGURE (Transact-SQL)Monitorar e ajustar o desempenho