O MS Sql Server está sobrecarregando com consultas 'suspensas', principalmente leituras. Algum jeito de arrumar isso?

4

Eu tenho um Microsoft Sql Server que lida com uma quantidade moderada de tráfego para um pacote de software da empresa composto de vários clientes em java e c #.

Está ficando sobrecarregado com as consultas "Suspenso". Eles acabam passando, mas alguns estão expirando (especialmente as gravações). As consultas são principalmente leituras.

Existe alguma maneira de acelerar isso ou corrigi-lo de alguma outra forma?

Aqui está uma imagem do meu Activity Monitor para mostrar do que estou falando:

Nota: planejamos mudar para o MySql já há algum tempo. Isso ajudaria em tudo? Eu sei que o MS Sql é strong, mas com o padrão Read-Committed, isso pode estar prejudicando alguma coisa?

    
por AAA 26.02.2014 / 21:44

2 respostas

0

Ok, descobri a questão.

As configurações padrão do MS Sql usam todos os núcleos do servidor para executar consultas grandes. Temos grandes leituras, por isso, estava acumulando uma longa fila de consultas esperando para serem processadas.

Para consertar, eu configurei o Grau Máximo de Paralelismo para ser 2 núcleos ao invés de ilimitado (8 no nosso servidor) e eu configurei o Limite de Custo do Paralelismo para 10 (segundos) de 5, que é o tempo no qual o o paralelismo entrará em cena para consultas.

Ambos podem ser encontrados no Sql Server Management Studio clicando com o botão direito do mouse no servidor, escolhendo Propriedades e, em seguida, clicando na guia Avançado.

Encontrei este artigo que explicou e resolveu o problema:

link

    
por 17.06.2016 / 21:26
2

Os tipos de espera exibidos na captura de tela são:

  • LCK_M_X - Ocorre quando uma tarefa está aguardando para adquirir um bloqueio Exclusivo.
  • CXPACKET - Ocorre com planos de consulta paralela ao tentar sincronizar o iterador de troca do processador de consultas. Se a espera for excessiva e não puder ser reduzida pelo ajuste da consulta (como a inclusão de índices), considere ajustar o limite de custo para o paralelismo ou diminuir o grau de paralelismo.

(Ambos eram C & Ped do MSDN .)

O MSDN sugere ajustar suas consultas e / ou adicionar índices acima. Esse é provavelmente um primeiro passo melhor do que apenas eliminar o SQL Server e mudar para outra coisa. (Se o problema são suas perguntas, bem, eles ainda serão ineficientes em MySql, IMHO.) Então, eu vou recomendar olhar para A espera de Brent Ozar mostra os recursos e procura coisas como top dez consultas caras . Espero que você esteja na direção certa.

    
por 26.02.2014 / 22:14