Em um servidor de banco de dados SQL Server 2016, tenho poucas consultas realmente lentas e que solicitam mais memória (as consultas não são otimizadas). Isso está tornando todo o banco de dados lento, pois muitos usuários estão executando a mesma consulta. Isso está fazendo com que outras consultas aguardem. Eu recebo CXCONSUMER
wait (devido à execução paralela) e RESOURCE_SEMAPHORE
.
Portanto, isso está criando pressão de memória (acredito que essas consultas lentas estão criando contenção de memória para outras consultas e, por sua vez, criando pressão de memória) e acho que isso está fazendo com que o cache do meu plano seja limpo em intervalos fixos.
Eu li que % de concessão de memória por padrão é 25%. Estou pensando em aumentar esses 25% para dar memória para consultas. Estou tentando resolver o problema temporariamente por enquanto.
As consultas que não são otimizadas são consultas LINQ e alterações que exigirão algum tempo para a equipe.
Então, por favor, sugira se aumentar a % de concessão de memória no governador de recursos é uma boa ideia ou não?
Eu tenho um total de 128 GB de RAM e 75% (102 GB) dele é alocado para o SQL Server.
Isso é o oposto do que você deve fazer.
Quando você tem consultas aguardando
RESOURCE_SEMAPHORE
, elas aguardam que outras consultas terminem de ser executadas e desistam de sua memória. As consultas que estão esperando nem estão sendo executadas.Permitir que todas as consultas usem mais memória só piorará o problema. Você deseja configurar o administrador de recursos para fazer consultas solicitar concessões menores. No entanto, isso também pode causar problemas, porque qualquer derramamento no disco pioraria.