none
Lentidão no SQL Server 2008 RRS feed

  • 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.
    quinta-feira, 20 de maio de 2010 21:57

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
    terça-feira, 25 de maio de 2010 14:40
  • 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
    sexta-feira, 4 de junho de 2010 14:55

Todas as Respostas

  • Rogerio,

    voce já fez um monitoramento ou pelo Activity Monitor ou pelo profiler no momento da lentidão? qual ERP utiliza?

    sds.

    sexta-feira, 21 de maio de 2010 20:01
  • 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.
    sexta-feira, 21 de maio de 2010 20:14
  • Rogerio,

    Verifique se não é lock...

    att.
    Marcelo Fernandes


    MCP, MCDBA, MCSA, MCTS. Se útil, classifique!!!
    sexta-feira, 21 de maio de 2010 20:19
    Moderador
  • "Ai é q tá"....não é gerado nenhum lock. Eu uso o comando sp_who2 para verificar isso. Existe alguma outra forma?
    sexta-feira, 21 de maio de 2010 20:22
  • vc ja fez uam monitoração no I/O e na memoria no momento da lentidão?

    att.
    Marcelo Fernandes


    MCP, MCDBA, MCSA, MCTS. Se útil, classifique!!!
    sexta-feira, 21 de maio de 2010 20:35
    Moderador
  • Sim....e tudo esta normal. 
    sexta-feira, 21 de maio de 2010 20:40
  • 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
    terça-feira, 25 de maio de 2010 14:40
  • 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.

    terça-feira, 25 de maio de 2010 16:29
  • 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
    sexta-feira, 4 de junho de 2010 14:55