none
Lentidao SQL Server 2005 RRS feed

  • Pergunta

  • Olá pessoal,

    Preciso de ajuda, pesquisei em boa parte do forum e não achei algo exatamente igual ao meu problema. Primeiramente eu gostaria de dizer que não tenho muita experiencia com Banco de Dados, sei o básico.

    Vamos la, tenho o seguinte servidor:

    Dell Power Edge 6650
    4X Pentium 4 3.0Ghz
    Raid 1 (SO)  e Raid1 (Banco) + Hot spare
    Win2k3 Enterprise 32bits
    SQL Enterprise 2005 32 bits
    RAM 25GB - SQL 19GB

    Vamos ao cenario,

    Tenho 2 servidores de aplicação, com configurações parecidas, o servidor de banco é dedicado e já monitorei toda a rede, ponta a ponta e nao tem gargalo. Já pedi para o pessoal de DBA Data Center verificar se existe algum Job ou processo Lockado no banco e não tem. Eu mesmo coleto os dados de capacity dos servidores, e o servidor SQL 2005 esta com um consumo de 88% de sua memória. Existe também em algumas ocasiões um uso excessivo de I/O de disco. Outra coisa que queria entender, nas especificações do produto SQL Enterprise ele informa que suporta a quantidade de memoria que o Windows suportar, consultei e suporta até 32GB. Eu nao pesquisei como o Windows 2k3 consegue suportar mais de 4GB, e gostaria de saber se o SQL esta realmente aproveitando os 19GB alocados para ele e como utilizar isso da melhor maneira.

    Resumindo o servidor SQL apresenta uma lentidao grande. Se precisarem de mais informações fico a disposição.


    quarta-feira, 8 de julho de 2009 13:33

Todas as Respostas

  • Bom Dia,

    Se o Windows é 32bits, para que ele "enxerge" mais de 4GB você deverá configurar o /PAE no arquivo boot.ini do Windows. Para que o SQL Server enxergue os 19GB, é necessário configurar a opção AWE Enabled do SQL Server, reiniciar o SQL Server e colocar a memória máxima (Max Server Memory) para 19GB.

    Se isso não foi feito, o SQL Server só estará utilizando 2GB que é o limite máximo de memória para um processo 32bits.

    Vale a pena lembrar que lentidão pode se dar por N fatores que não foram investigados

    - Indexação inadequada
    - Modelo de dados físico inadequado
    - Consultas mal estruturadas

    Não necessariamente (aliás quase sempre) você conseguirá resolver esses problemas com configurações relacionadas a infra-estrutura

    Sugiro ler o documento abaixo:

    Troubleshooting Performance Problems in SQL Server 2005
    http://technet.microsoft.com/en-us/library/cc966540.aspx

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com

    Certificados, Cross Database Ownership Chaining e Segurança
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!622.entry


    Classifique as respostas. O seu feedback é imprescindível
    quarta-feira, 8 de julho de 2009 14:58
  • Gustavo,

    Seria bom abilitar o /3GB para liberar o acesso direto a 3Gb de memória e o restrante via AWE tb não?

    Abraços
    Demétrio Silva
    quinta-feira, 9 de julho de 2009 14:14
  • Olá Demétrio,

    O /3GB e o /PAE devem andar em conjunto quando o SQL Server necessita consumir acima de 3GB e menos de 16GB. O /3GB permitirá que um User Process acumule acima de 2GB e o /PAE irá possibilitar que o SO de 32bits acesse a área de memória superior a 4GB. O problema é que se o /3GB estiver habilitado, o SO terá apenas 1GB para si e para fazer o mapeamento AWE e isso limitará o mapeamento a 16GB somente.

    Como o SO tem mais de 16GB é necessário dar liberdade ao SO para mapear e por isso não podemos limitá-lo a 1GB somente. Ele precisará dos 2GB para fazer o mapeamento extensível até 64GB. Então fica valendo a seguinte regra:

    Sem /3GB e sem /PAE - SQL Server vai até 2GB (se a memória física for até 4GB)
    Com /3GB e sem /PAE - SQL Server vai até 3GB
    Com /3GB e com /PAE - SQL Server vai até de 3GB até 16GB (se a memória física for superior a 4GB)
    Sem /3GB e com /PAE - SQL Server vai até a memória máxima disponível ou a limitação do Max Server Memory (se a memória física for superior a 16GB)

    Como o SQL Server necessita de 19GB, é necessário habilitar o /PAE somente. O /3GB deve ficar desabilitado nesse caso.

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com

    Certificados, Cross Database Ownership Chaining e Segurança
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!622.entry


    Classifique as respostas. O seu feedback é imprescindível
    • Sugerido como Resposta Demétrio Silva quinta-feira, 9 de julho de 2009 15:18
    quinta-feira, 9 de julho de 2009 14:31
  • Hadesbr,

    Gostaria de completar a resposta do Gustavo, destacando que o parâmetro /PAE pode ser utilizando tanto em processadores x86 ou x64 para sistemas operacionais 32 ou 64 bits, mas somentes os sistemas operacionais relacionados abaixo poderão trabalhar com este parâmetro durante o processo de boot.

    Veja abaixo a tabela:

    Operating systemMaximum memory support with PAE
    Windows 2000 Advanced Server 8 GB of physical RAM
    Windows 2000 Datacenter Server 32 GB of physical RAM
    Windows XP (all versions) 4 GB of physical RAM*
    Windows Server 2003 (and SP1), Standard Edition 4 GB of physical RAM*
    Windows Server 2003, Enterprise Edition 32 GB of physical RAM
    Windows Server 2003, Datacenter Edition 64 GB of physical RAM
    Windows Server 2003 SP1, Enterprise Edition 64 GB of physical RAM
    Windows Server 2003 SP1, Datacenter Edition 128 GB of physical RAM


    * Quantidade máxima de espaço para alocação de memória RAM pelo sistema operacional é de 4GB.
    sábado, 11 de julho de 2009 23:08
    Moderador