Podem centenas de processos adormecidos no MS SQL Server degradar o desempenho?

3

Temos um banco de dados SQL considerável (24 GB) no qual nossos usuários executam relatórios. Alguns dos relatórios são intensivos, mas geralmente são executados rapidamente - alguns minutos.

Estamos vendo um problema nas últimas semanas em que esses mesmos relatórios levarão 20 minutos, o que não faz sentido - nenhum dos relatórios do SQL foi alterado.

Durante minha investigação, descobri que existem centenas (atualmente mais de 300) tarefas para dormir no monitor de atividades. Temos cerca de 30 usuários em estações de trabalho e talvez uma dúzia de usuários da Web (usando um site de portal que acessa esses dados). Então, 300 processos para dormir parecem loucos para mim.

O outro bit de informação aleatória é que, se reiniciarmos o servidor SQL, os relatórios serão executados como um raio. Depois de algumas horas - porcaria.

Estou tentando rastrear esse problema, e não sei como, mas suponho que a pergunta é a seguinte: será que esses processos de suspensão que se acumulam podem degradar o desempenho o suficiente para causar uma desaceleração como essa?

Muito obrigado.

    
por Ducain 08.02.2011 / 17:06

1 resposta

3

Os processos de sono consomem alguma memória (algumas dúzias de k para cada), mas 300 não são muitos.

Se os relatórios estiverem clareando rapidamente na reinicialização, é possível que você tenha um sniffing de parâmetro.

Você pode testar isso para executar sp_updatestats : isso invalida os planos de execução em cache e deve tornar os relatórios mais complexos.

O próprio sniffing de parâmetro pode ser resolvido com mascaramento ou dicas (muitas informações sobre o StackOverflow)

    
por 08.02.2011 / 17:18

Tags