Usuário com melhor resposta
Lentidão no SQL Server 2008

Pergunta
-
Estou com um problema que está me deixando insone. No decorrer do dia, sem um motivo aparente, o banco de dados fica lento. Por exemplo, na segunda-feira o banco ficou muito lento. Reduzi o arquivo de LOG e na terça e quarta tudo ocorreu normalmente. Ja na quinta, no final do dia, voltou o problema de lentidao. Uma hora depois, voltou ao normal. E monitorando o servidor, não há nada de anormal. O nivel de processmento está baixo, bem como o consumo de memoria e disco. O servidor possui 3 discos, sendo que um deles (250 GB) é exclusivo para o banco de dados do ERP. O segundo disco está com os arquivos de LOG e o terceiro disco com outros banco de dados que servem de apoio. Sei que é dificil alguem dizer o que é, mas ideias serão bem-vindas.
Respostas
-
Você poderia coletar durante o período de lentidão a média dos contadores abaixo? (Você pode usar o Performance Monitor ou rodar uma querie para isso)
BufferCacheHit Ratio
Avg. Disk Queue Length
Stolen Pages
Target Pages
Total Pages
%Processor Time
Uma querie rapida para pegar parte dos dados que pedi:
Select cntr_value Contador,Getdate() DiaHora, rtrim(counter_name) Contador_Nome, rtrim(instance_name) Instancia, total_physical_memory_kb TotalMem,available_physical_memory_kb DispMem from sys.dm_os_performance_counters left join sys.dm_os_sys_memory on 1=1 where ( ((counter_name='Stolen pages' ) and lEN(rtrim(instance_name)) >0 ) OR ((counter_name='Target pages' ) and lEN(rtrim(instance_name)) >0 ) OR ((counter_name='Total pages' ) and lEN(rtrim(instance_name)) >0 ) OR (counter_name='Buffer cache hit ratio') OR (counter_name='User Connections') )
Posso estar errado, mas para uma configuração de 4Gb não é necessário o /3GB.
Outra coisa, eu configuraria o mim Memory para 256Mb e o Max para 2560Mb (Deixando assim 1024 para o Windows).
Já lí em alguns lugares que S.O 32 bits reconhece 3.5Gb de memória e 64Bits reconhece 4Gb mas usa alguns serviços que acabam usando mais memória, sendo assim, para sua configuração acho desnecessária a opção /3Gb.
Att,
Ricardo Muramatsu
http://ricardomura.spaces.live.com- Marcado como Resposta Junior Galvão - MVPMVP, Moderator sexta-feira, 17 de abril de 2015 15:23
-
Rogério.
Não tem nenhuma operação interna do banco rodando nesse período? Tal qual um job, manutenção, alguma rotina específica?
Tente habilitar o AWE, e colocar como máximo os 3gb de memória. Porque esse 1GB a mais que você liberou parece estar ocioso.Outra coisa que eu sugiro, é você pegar esses dados do profiler e rodar o DTA (Tunning Advisor), pra ver se ele indica alguma criação de index e de estatísticas.
Essas são algumas das coisas que eu habitualmente faço...
Abraços,
Frederico Guimarães Santos MCT - MCP - MCTS - MCITP Database Administrator 2005/2008- Marcado como Resposta Junior Galvão - MVPMVP, Moderator sexta-feira, 17 de abril de 2015 15:23
Todas as Respostas
-
-
O ERP é o Everest da Acom Sistemas de Curitiba. Fiz o monitoramento pelo Profiler, mas não consegui identificar nada de diferente. O uso da CPU as vezes atinge picos de 30, 40%. O servidor tem 4 GB de memória, a configuração do mínimo e máximo esta em 0GB e 2GB, sem utilização do AWE. Está configurado o /3GB no boot.
-
-
-
-
-
Você poderia coletar durante o período de lentidão a média dos contadores abaixo? (Você pode usar o Performance Monitor ou rodar uma querie para isso)
BufferCacheHit Ratio
Avg. Disk Queue Length
Stolen Pages
Target Pages
Total Pages
%Processor Time
Uma querie rapida para pegar parte dos dados que pedi:
Select cntr_value Contador,Getdate() DiaHora, rtrim(counter_name) Contador_Nome, rtrim(instance_name) Instancia, total_physical_memory_kb TotalMem,available_physical_memory_kb DispMem from sys.dm_os_performance_counters left join sys.dm_os_sys_memory on 1=1 where ( ((counter_name='Stolen pages' ) and lEN(rtrim(instance_name)) >0 ) OR ((counter_name='Target pages' ) and lEN(rtrim(instance_name)) >0 ) OR ((counter_name='Total pages' ) and lEN(rtrim(instance_name)) >0 ) OR (counter_name='Buffer cache hit ratio') OR (counter_name='User Connections') )
Posso estar errado, mas para uma configuração de 4Gb não é necessário o /3GB.
Outra coisa, eu configuraria o mim Memory para 256Mb e o Max para 2560Mb (Deixando assim 1024 para o Windows).
Já lí em alguns lugares que S.O 32 bits reconhece 3.5Gb de memória e 64Bits reconhece 4Gb mas usa alguns serviços que acabam usando mais memória, sendo assim, para sua configuração acho desnecessária a opção /3Gb.
Att,
Ricardo Muramatsu
http://ricardomura.spaces.live.com- Marcado como Resposta Junior Galvão - MVPMVP, Moderator sexta-feira, 17 de abril de 2015 15:23
-
Esse monitoramento via Performance Monitor é excelente para identificar gargalos no momento que estão ocorrendo... Voce pode abrir o Performance Monitor e apontá-lo para a maquina que voce deseja monitorar... dessa forma, vc pode concentrar o monitoramento de varias maquinas em uma só.
Dica: Você verificou se tinha algum processo pesado rodando no servidor? Ja vi problemas de lentidão ocasionados por antivirus mal agendado, concorrencia com rotinas de manutencao, etc.
-
Rogério.
Não tem nenhuma operação interna do banco rodando nesse período? Tal qual um job, manutenção, alguma rotina específica?
Tente habilitar o AWE, e colocar como máximo os 3gb de memória. Porque esse 1GB a mais que você liberou parece estar ocioso.Outra coisa que eu sugiro, é você pegar esses dados do profiler e rodar o DTA (Tunning Advisor), pra ver se ele indica alguma criação de index e de estatísticas.
Essas são algumas das coisas que eu habitualmente faço...
Abraços,
Frederico Guimarães Santos MCT - MCP - MCTS - MCITP Database Administrator 2005/2008- Marcado como Resposta Junior Galvão - MVPMVP, Moderator sexta-feira, 17 de abril de 2015 15:23