Compartilhar via


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

Aplica-se: 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 pelo max degree of parallelism, consulte a seção 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.

O SQL Server 2019 (15.x)SQL Server 2019 (15.x)SQL Server 2019 (15.x)SQL Server 2019 (15.x)SQL Server 2019 (15.x)SQL Server 2019 (15.x)SQL Server 2019 (15.x)SQL max degree of parallelism Server 2019 (15.x 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 novo banco de dados individual, 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 MAXDOP banco de dados é definida como 8. Na Instância Gerenciada de SQL do Azure, a opção de configuração do max degree of parallelism servidor é 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.

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 configuração max degree of parallelism 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 a execução de uma consulta paralela, uma única solicitação pode gerar várias tarefas até o limite MAXDOP, e cada tarefa usa um trabalhador e um agendador. Para obter mais informações, consulte a seção Agendamento de tarefas paralelas no guia Thread e arquitetura de 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 de consultas e operações de índice, essa opção também controla o paralelismo de DBCC CHECKTABLE, DBCC CHECKDBe 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, consulte Sinalizador de rastreamento 2528.

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

No SQL Server 2016 (13.x) e versões posteriores, durante a inicialização do serviço, se o Mecanismo de Banco de Dados detectar mais de oito núcleos físicos por nó ou soquete NUMA na inicialização, os nós NUMA de software 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 destinam-se a manter todos os threads de trabalho de uma consulta paralela dentro do mesmo nó NUMA de software. Isso melhora o desempenho das consultas e a distribuição de threads de trabalho entre os nós NUMA para 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 de Servidor Número de processadores Orientação
Servidor com um único nó NUMA Menor ou igual a oito processadores lógicos Mantenha MAXDOP em ou abaixo do # 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 Mantenha MAXDOP em ou abaixo do # 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

O nó NUMA na tabela anterior refere-se a nós NUMA de software criados automaticamente pelo SQL Server 2016 (13.x) e versões superiores, ou nós NUMA baseados em hardware se o NUMA de software estiver 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, 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 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 Mantenha MAXDOP em ou abaixo do # 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 Mantenha MAXDOP em ou abaixo do # 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

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 Database Admin Tool Extensions for Windows extensão ou use o método T-SQL a seguir.

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

  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 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 servidor.

Acompanhamento: depois de configurar a opção de grau máximo de paralelismo

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