SQL Server 2008 constantemente lê o arquivo MDF, desempenho terrível [fechado]

1

Temos um aplicativo que executa o SQL Server 2008 R2 Express no back-end em um servidor virtual Windows 2008 R2 em execução no VMWare ESXi. Os usuários reclamam que o aplicativo é muito lento. Eu vejo disco IO muito alto que não faz sentido para mim.

Antecedentes:

  • O comprimento médio da fila do disco é de cerca de 60, o máximo é de cerca de 250
  • Média de leituras de disco / s é por volta de 2000, com um máximo de cerca de 3500
  • O Monitor de Recursos mostra que o sqlservr.exe está lendo o arquivo .mdf por volta de 40 a 60 MB / s (veja abaixo). Escrever IO é muito baixo.
  • O arquivo .mdf tem apenas 2 GB, o que significa que a coisa toda deve caber na memória
  • O servidor tem 32 GB de RAM e normalmente menos de 16 GB em uso
  • O servidor tem 8 discos SAS de 15k no RAID10. É uma Dell com um controlador PERC H710, que é capaz de usar um SSD para ativar o CacheCade (cache de leitura baseado em SSD), que eu estou tentado a tentar, mas parece que a coisa toda deve ser armazenada em cache de qualquer maneira, então Não tenho certeza se isso vai ajudar.
  • A VM SQL fica em um servidor Dell que executa o VMWare ESXi 5. Há uma outra VM nesse host ESXi, mas é um controlador de domínio com muito pouco IO.
  • Este aplicativo foi executado anteriormente em um servidor Windows 2003 autônomo. Fizemos o upgrade para o Windows 2008 R2 e também atualizamos o aplicativo para uma versão mais recente ao mesmo tempo, por isso é possível que qualquer um desses fatores possa estar contribuindo.

Quais são as opções para se aprofundar nisso? Existe uma maneira de ver o que o SQL Server está fazendo sob o capô (quais consultas estão sendo executadas, etc)? Esse comportamento parece normal e a carga é demais para o armazenamento? Eu estou querendo saber se algo não está configurado corretamente.

    
por user1594322 12.05.2014 / 17:52

2 respostas

1

link

O Espress não usa mais de 1 GB de RAM para o processo SQL. Você precisa comprar e instalar pelo menos Web ou Standard para usar mais de 4 GB - ambos suportam 64, o que é mais do que você, então escolha um deles.

Além disso, ser um DBA é um tópico bastante profundo, mas é muito acessível por meio do Technet e do arquivo de Ajuda. "Como eu sei quais consultas estão sendo executadas" é praticamente um tópico do Dia 1 (assim como saber qual edição é apropriada para uma determinada tarefa.) O Profiler nem está disponível para o Express, então você está em um riacho como você está configurado agora mesmo.

    
por 12.05.2014 / 18:52
0

Veja os detalhes da consulta - verifique as consultas que têm um IO físico ou lógico alto, isole-as e consulte o plano de consulta. São anos que eu usei uma versão desatualizada como 2008 R2 ... link pode dar você é um começo.

Meu ponteiro seria em direção a índices ausentes que acionam varreduras de tabela. Os assistentes de criação de perfil e ajuste também podem ajudar a entender onde está o problema. Se o 2008 R2 já tem a visão geral da atividade no gerenciador, então ele tem uma boa janela com as consultas mais caras.

    
por 12.05.2014 / 18:08