locked
Problema de Lock SQL2005 RRS feed

  • Pergunta

  • Pessoal,

    Estou com o seguinte problema:

    Na empresa que trabalho utilizávamos SQL2000 esse fds migramos para o SQL2005, enterprise. O Windows é 2003Server Enterprise 64bits.

    Está acontecendo com muita frequencia lock de processos, de consultas em tabelas simples como fila de espera e em operações como update e delete. Com esses travamentos inicia-se uma cadeia de processos travados, fazendo com que a aplicação fique lenta e travada.  Esses processos ficam como SUSPEND

    O banco de dados esta atualmente com 100Gb. O servidor é um SUN, com 8Gb Ram, RAID 1+0 para o arquivo MDF e RAID 1+0 para o LDF.

    Li em alguns foruns sobre bloqueio de páginas na memória, habilitação de AWE, etc...no entanto ainda não executei nenhuma dessas rotinas.

    Se alguem puder ajudar, agradeço.

    Abraço.

    quarta-feira, 28 de outubro de 2009 01:59

Respostas

  • Gody,

    Como você citou acima o seu sistema operacional é o Windows Server 2003 64Bits,a edição do SQL Server 2005 pelo que parece é 32Bits pois como você disse que o SQL Server identificou apenas 4GB de memória pressupoe que este esteja executado no ambiente WOW64 (SO 64+SGBD32) certo ?

    Para a sua instancia endereçar um espaço de memória superior aos 4GB voce deve conceder permissão a conta do Windows que executa o SQL Server à diretiva Lock pages in memory,habilitar o recurso AWE e reinicializar a instancia.

    Após isto,para limitar o SQL Server a utilizar o máximo de memória de 7GB utilize a opção max server memory.

    Para resolver o seu problema de locks,volto a insistir na avaliação do novo nível de isolação Snapshot.

    Até mais.





    Felipe Santana - MCP
    quinta-feira, 29 de outubro de 2009 13:49

Todas as Respostas

  • Gody,

    Recentemente fiz uma migraçãode 2000 para 2005 e tive os problemas citados por vc, o problema foi sanado fazendo um reindex.
    e alguns indices foram alterados adicionando a nova feature do 2005 "INCLUDE"

    Att.
    Marcelo Fernandes
    MCP, MCDBA, MCSA, MCTS. Se útil, classifique!!!
    quarta-feira, 28 de outubro de 2009 10:31
    Moderador
  • Gody,

    Talvéz seja o caso,você avaliar as novas opções de nivél de isolação da transação disponíveis no SQL Server 2005,por exemplo READ COMMITTED SNAPSHOT.

    Até mais.


    Felipe Santana - MCP
    quarta-feira, 28 de outubro de 2009 11:12
  • Marcelo, blza...boa dica.

    Felipe, obrigado pela contribuição.

    Dei uma checada no log do SQLAagent e percebi uma mensagem dizendo que o foi identificado 4 processadores e 4Gb de memória. Esse servidor tem 8Gb de memória. Como faço para poder expandir e utilizar 7Gb e deixar 1Gb para o SO?

    Grato.

    quarta-feira, 28 de outubro de 2009 12:10
  • Pessoal,

    Um outro ponto importante que percebi no meu ambiente é que os locks mais demorados envolvem transações de update e delete.

    Alguma sugestão?

    Estou fazendo o reindex para ver se melhora o ambiente.

    Abraço.
    quarta-feira, 28 de outubro de 2009 12:17
  • Gody,

    Considere trabalhar com os isolamentos como disse o Felipe.

    Att.
    Marcelo Fernandes
    MCP, MCDBA, MCSA, MCTS. Se útil, classifique!!!
    quarta-feira, 28 de outubro de 2009 12:29
    Moderador
  • Gody,

    O reindex é mais indicado para reestabelecer a estrutura dos seus índices principalmente ajudando o SQL Server a trabalhar durantes as pesquisas ou inserção de dados sobre este índices.

    No caso de problemas com Update e delete, concordo com a sugestão do Felipe em verificar os níveis de isolamento.
    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    quarta-feira, 28 de outubro de 2009 18:33
    Moderador
  • Gody,

    Como você citou acima o seu sistema operacional é o Windows Server 2003 64Bits,a edição do SQL Server 2005 pelo que parece é 32Bits pois como você disse que o SQL Server identificou apenas 4GB de memória pressupoe que este esteja executado no ambiente WOW64 (SO 64+SGBD32) certo ?

    Para a sua instancia endereçar um espaço de memória superior aos 4GB voce deve conceder permissão a conta do Windows que executa o SQL Server à diretiva Lock pages in memory,habilitar o recurso AWE e reinicializar a instancia.

    Após isto,para limitar o SQL Server a utilizar o máximo de memória de 7GB utilize a opção max server memory.

    Para resolver o seu problema de locks,volto a insistir na avaliação do novo nível de isolação Snapshot.

    Até mais.





    Felipe Santana - MCP
    quinta-feira, 29 de outubro de 2009 13:49
  • Gody,

    O reindex é mais indicado para reestabelecer a estrutura dos seus índices principalmente ajudando o SQL Server a trabalhar durantes as pesquisas ou inserção de dados sobre este índices.

    No caso de problemas com Update e delete, concordo com a sugestão do Felipe em verificar os níveis de isolamento.
    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA

    Boa!!!

    Reindex uma vez por semana com acerto de fillfactor tá de ótimo tamanho.

    E READ_COMMITTED_SNAPSHOT ON já deveria ser Default do SQLServer,
    Tks. Fausto Fiorese Branco DBA - SQL Server 2k5 São Paulo - Brasil * http://dba-sqlserver.blogspot.com/
    quinta-feira, 29 de outubro de 2009 14:01