Compartilhar via


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

Aplica-se:SQL Server

Este artigo descreve como configurar a opção max degree of parallelism de configuração do servidor (MAXDOP) 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. É 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, 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.

O SQL Server 2019 (15.x) apresenta recomendações automáticas para definir a opção de configuração do servidor max degree of parallelism 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, no Banco de Dados SQL no Fabric 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 e no Banco de Dados SQL no Fabric, a configuração com escopo de 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 é definida como 8.

Para obter mais informações no MAXDOP 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

Essa 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 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 uma execução de consulta paralela, uma única solicitação pode gerar várias tarefas até o MAXDOP limite, e cada tarefa usa um trabalhador e um escalonador. 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 grau máximo de paralelismo para operações de índice especificando a opção MAXDOP de índice na instrução de índice. O MAXDOP valor é aplicado à instrução no momento da 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 CHECKDB e DBCC CHECKFILEGROUP. Você pode desabilitar planos de execução paralelos 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 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).

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 detectar mais de oito núcleos físicos por nó NUMA ou soquete na inicialização, 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 melhora 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, 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 servidor max degree of parallelism:

Configuração de Servidor Número de processadores Guidance
Servidor com um único nó NUMA Menor ou igual a oito processadores lógicos Mantenha MAXDOP no ou abaixo de # 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 em 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 Mantenha MAXDOP em metade do número de processadores lógicos por nó NUMA, com um valor máximo de 16

O nó NUMA na anterior 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 esteja 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 Guidance
Servidor com um único nó NUMA Menor ou igual a oito processadores lógicos Mantenha MAXDOP no ou abaixo de # 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 em 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

Permissions

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.

Utilize o SQL Server Management Studio

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

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

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