none
SQL Server restart no banco RRS feed

  • Pergunta

  • Pessoal bom dia,

    Gostaria da opiniao de voces.

    Estou atualmente com um Servidor com Windows 2008R2 e SQL Server 2012 com sp1.

    Neste servidor esta instalado apenas o SQL SErver 2012 em RAID 10 ( 4 discos SAS 15k) e RAID 1 para o S.O.

    Em um outro servidor tem o IIS onde esta minha aplicação.

    Ocorre um problema estranho em determinada tela da aplicação que fica lenta, apenas em duas telas da aplicação fica lento... se eu reinicio o banco essas telas voltam ao normal, e o resultado aparece em 5 segundos.

    Porem é mais estranho ainda, que identificamos a procedure, se executamos a procedure pelo banco, demora 5 segundos para retornar, porem com o tempo pela aplicação, a tela expira e nao tras o resultado.

    Se reiniciamos o banco ou executamos os comandos:

    DBCC FREEPROCCACHE

    go

    DBCC DROPCLEANBUFFERS

    , e executarmos novamente pela aplicacao, volta a trazer o resultado em 5 segundos... com o tempo vai ficando lento ate voltar o problema, ou seja, fica lento expira a tela e nao traz o resultado.

    Alguem pode me dar uma luz do que pode ser, se alguem ja passou por isso, etc..

    Obrigado





    • Editado J.Carlos.Rib segunda-feira, 26 de novembro de 2012 12:39 acres
    segunda-feira, 26 de novembro de 2012 12:13

Respostas

  • J.Carlos.Rib,

    Esta é justamente a opção que vai ajudar a aliviar a pressão de memória por parte do seu SQL Server, fazendo com que o Database Engine criar caches de armazenamento com tamanhos menores, fazendo assim o uso mais leve do que esta em transação.

    Vale ressaltar que esta configuração será somente aplicado aos novos planos de execução, aqueles que estão em cache não serão aplicados.

    Uma sugestão seria fazer o uso desta opção e depois forçar a limpeza dos caches de sessão.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]

    • Sugerido como Resposta Roberson Naves quarta-feira, 28 de novembro de 2012 18:22
    • Marcado como Resposta J.Carlos.Rib quarta-feira, 28 de novembro de 2012 18:48
    quarta-feira, 28 de novembro de 2012 18:02

Todas as Respostas

  • Olá...

    Em aplicações WEB, ao se trabalhar com dados, é boa prática:

    - Abrir a conexão o mais tarde possível;

    - Fecha-la o breve possível.

    Certifique-se que seu sistema está fechando corretamente as conexões com o SQLServer, pois o excesso de conexões abertas pode causar esse problema.

    Qualquer dúvida, poste aí...

    Espero ter lhe ajudado.

    Abraço !


    Não esqueça de marcar o post como útil caso tenha te ajudado.

    quarta-feira, 28 de novembro de 2012 13:21
  • J.Carlos.Rib

    Já checou as leituras de disco? Pode ser problemas de I/O e/ou Buffer

    []´s

    quarta-feira, 28 de novembro de 2012 13:50
  • J.Carlos.Rib,

    Somente neste ponto do sistema quando esta Stored Procedure esta sendo executada, você já chegou a verificar o plano de execução desta Procedure?

    Mas você também destacou que a mesma leva 5 segundos para ser processada diretamente no SQL Server então aparentemente o problema esta ocorrendo entre a aplicação acessar os dados e os mesmos serem apresentados em tela.

    Isso esta acontecendo diretamente no seu servidor IIS ou nas estações de trabalho?


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]

    quarta-feira, 28 de novembro de 2012 17:28
  • Obrigado a todos pelas respostas...

    Sim verificamos o IIS, porem, o problema é que é em apenas duas telas da aplicação e nao no sistema todo, por isso estamos descartando a possibilidade do IIS.

    Verificamos que existe uma opção a partir do SQL Server R2 - chamada

    Optmize for AD hoc Workloads justamente para parte de cache...

    Algum de voces ja utilizou?

    quarta-feira, 28 de novembro de 2012 17:44
  • J.Carlos.Rib,

    Esta é justamente a opção que vai ajudar a aliviar a pressão de memória por parte do seu SQL Server, fazendo com que o Database Engine criar caches de armazenamento com tamanhos menores, fazendo assim o uso mais leve do que esta em transação.

    Vale ressaltar que esta configuração será somente aplicado aos novos planos de execução, aqueles que estão em cache não serão aplicados.

    Uma sugestão seria fazer o uso desta opção e depois forçar a limpeza dos caches de sessão.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]

    • Sugerido como Resposta Roberson Naves quarta-feira, 28 de novembro de 2012 18:22
    • Marcado como Resposta J.Carlos.Rib quarta-feira, 28 de novembro de 2012 18:48
    quarta-feira, 28 de novembro de 2012 18:02