Quais são os benefícios de alterar meu grau máximo de paralelismo?

Nota: O seguinte artigo irá ajudá-lo com: Quais são os benefícios de alterar meu grau máximo de paralelismo?

A execução de um banco de dados SQL Server oferece muitas opções em termos de configurações para ajustar quando você deseja melhorar o desempenho e maximizar o impacto do hardware à sua disposição.

Uma dessas configurações flexíveis é o MAXDOP, também conhecido como grau máximo de paralelismo. Então, o que é exatamente e quais são os principais benefícios de alterá-lo?

Uma breve introdução ao MAXDOP

Entender o MAXDOP em um contexto do SQL Server é bastante simples. É basicamente uma variável que determina a proporção dos processadores disponíveis que podem ser aproveitados para execução do plano paralelo.

O que é a execução do plano paralelo, eu ouço você chorar? Bem, esse é um dos recursos de design do próprio SQL Server, que simplesmente garante que os vários núcleos e threads do processador, que têm sido um grampo do hardware do servidor há algum tempo, sejam explorados em todo o seu potencial.

Por que a configuração é importante

É totalmente possível executar uma instância do SQL Server sem nunca escolher uma configuração MAXDOP personalizada. Se você fizer isso, o valor padrão de 0 será usado, e isso significa que a maneira como os processadores são alocados será efetivamente aleatória.

Isso não é estritamente um problema, porque o SQL Server faz um trabalho decente ao decidir quantos núcleos lógicos atribuir a um determinado plano de execução. No entanto, isso pode levar a problemas quando consultas maiores e mais complicadas precisam ser tratadas, e o desempenho pode ser prejudicado por causa disso.

Felizmente, ajustar o MAXDOP é teoricamente simples; você só precisa escolher um número acima de 0 para trocar pela configuração padrão, e isso determinará o grau de paralelismo que seu banco de dados usa.

Quais configurações fazem sentido

O limite superior para MAXDOP é 32.767, embora seja possível que muito paralelismo se torne um problema, assim como muito pouco pode ser um gargalo.

Você não quer que seu servidor tenha todos os seus núcleos de U monopolizados para processamento de consultas a qualquer momento, porque alguns estarão ocupados em manter outros elementos do banco de dados funcionando e isso pode criar congestionamento.

A boa notícia é que existem configurações recomendadas para MAXDOP que dependem do número de processadores lógicos disponíveis. Em termos gerais, é aconselhável definir isso em um valor abaixo do número de núcleos lógicos, embora a alocação de RAM também seja relevante nesse contexto, portanto, siga esta orientação e escolha uma configuração adequada à sua configuração.

Explodindo os benefícios

O principal motivo para mexer no MAXDOP e alterá-lo da configuração padrão é garantir que o desempenho do servidor seja bem otimizado e que as consultas possam ser executadas com eficiência.

Muito pouco paralelismo pode fazer com que consultas mais longas sejam interrompidas porque elas não podem ar núcleos lógicos suficientes para serem enviados em tempo hábil. Muito paralelismo pode fazer com que os recursos de hardware sejam desviados de outros processos, potencialmente criando soluços em outros lugares.

Conseguir esse equilíbrio certo pode exigir um pouco de experimentação e personalização. Por exemplo, você pode estar disposto a justificar tempos de execução de consulta um pouco mais lentos se estiver preocupado com o gargalo de outros elementos de hardware do seu servidor, como a memória ou a E/S.

Outro ponto a ser observado é que, eventualmente, à medida que seu banco de dados cresce em tamanho e atende a mais usuários, ele precisará ser atualizado e expandido para que o hardware ainda esteja adequado para a tarefa em questão. Estar ciente do MAXDOP e reconhecer quando o poder de processamento do seu servidor não é mais adequado facilitará o planejamento de um caminho a seguir.

Tenho mais de 13 anos de experiência em P&D, engenharia e gestão de pessoas, com responsabilidades crescentes em laboratórios líderes da indústria e organizações de engenharia.