Arquitetura de memória

O SQL Server adquire e libera memória dinamicamente conforme necessário. Normalmente, um administrador não precisa especificar a quantidade de memória que deve ser alocada ao SQL Server, embora essa opção exista e seja necessária em alguns ambientes.

O SQL Server oferece suporte a AWE (Address Windowing Extensions) permitindo o uso de memória física de mais de 4 GB (gigabytes) em versões de 32 bits dos sistemas operacionais do Microsoft Windows. Há suporte para até 64 GB de memória física. As instâncias do SQL Server executadas no Microsoft Windows 2000 usam alocação de memória de AWE estática e as instâncias executadas no Microsoft Windows Server 2003 usam alocação de memória de AWE dinâmica.

ObservaçãoObservação

O suporte para AWE está disponível somente nas edições Enterprise, Standard e Developer do SQL Server e se aplica apenas a sistemas operacionais de 32 bits. O Analysis Services não pode se beneficiar da memória mapeada por AWE. Se a memória física disponível for menor do que o espaço de endereço virtual do modo de usuário, o AWE não poderá ser habilitado.

Uma das principais metas de design de todo o software de banco de dados é minimizar a E/S de disco devido às leituras e gravações de disco estarem entre as operações que consomem muitos recursos. O SQL Server cria um pool de buffers na memória para manter a leitura de páginas do banco de dados. Grande parte do código do SQL Server é dedicada a minimizar o número de leituras e gravações físicas entre o disco e o pool de buffers. O SQL Server tenta alcançar um equilíbrio entre as duas metas:

  • Evitar que o pool de buffers fique tão grande que o sistema inteiro fique com pouca memória.

  • Minimizar a E/S física aos arquivos de banco de dados maximizando o tamanho do pool de buffers.

Para obter mais informações, consulte Gerenciamento de buffer.

Por padrão, as edições do SQL Server 2005 gerenciam a memória dinamicamente para cada instância. Há diferenças na forma pela qual o SQL Server gerencia a memória mapeada por AWE no Windows 2000 e versões posteriores dos sistemas operacionais.

ObservaçãoObservação

Em um sistema amplamente carregado, algumas consultas grandes que exigem muita memória para serem executadas não conseguem obter a quantidade mínima de memória solicitada e recebem um erro de tempo limite enquanto esperam recursos de memória. Para resolver isso, aumente a Opção query wait. Para uma consulta paralela, considere a redução da Opção max degree of parallelism.

ObservaçãoObservação

Em um sistema amplamente carregado sob pressão de memória, as consultas com junção de mesclagem, classificação e bitmap no plano de consulta podem cancelar o bitmap quando as consultas não adquirem a memória mínima necessária para o bitmap. Isso pode afetar o desempenho da consulta e, se o processo de classificação não conseguir se ajustar na memória, poderá aumentar o uso de tabelas de trabalho no banco de dados tempdb, aumentando o tempdb. Para resolver esse problema, adicione memória física ou ajuste as consultas para usar um plano de consulta diferente e mais rápido. Para obter informações sobre ajuste, consulte Otimizando o desempenho de tempdb e Como ajustar um banco de dados.

Fornecendo a quantidade máxima de memória para o SQL Server

Ao usar o AWE e o privilégio Páginas Bloqueadas na Memória, você pode fornecer as quantidades de memória a seguir para o Mecanismo de banco de dados do SQL Server.

32 bits

64 bits

Memória convencional

Todas as edições do SQL Server: até o limite de espaço de endereço virtual do processo:

  • 2 GB

  • 3 GB com parâmetro de inicialização /3gb1

  • 4 GB em WOW642

Todas as edições do SQL Server: até o limite de espaço de endereço virtual do processo:

  • 7 terabytes na arquitetura IA64

  • 8 terabytes na arquitetura x64

ObservaçãoObservação
No Windows Server 2003, a limitação é de 512 GB; e no Windows Server 2003 Service Pack 1, a limitação é de 1 terabyte. Quando o Windows oferece suporte a memória adicional, o SQL Server pode alcançar os limites listados.

Mecanismo AWE (Permite ao SQL Server ir além do limite de espaço de endereço virtual do processo na plataforma de 32 bits.)

Edições Standard, Enterprise e Developer do SQL Server: o pool de buffers é capaz de acessar até 64 GB de memória.

Não aplicável3

Páginas bloqueadas no privilégio do sistema operacional da memória (Permite bloqueio de memória física, evitando a paginação do sistema operacional da memória bloqueada.)4

Edições Standard, Enterprise e Developer do SQL Server: necessárias para o processo SQL Server usar o mecanismo AWE. A memória alocada pelo mecanismo AWE não pode passar pelo page out.

A concessão desse privilégio sem a ativação de AWE não tem nenhum efeito no servidor.

Edições Enterprise e Developer do SQL Server: recomendadas, para evitar a paginação do sistema operacional. Pode fornecer um benefício de desempenho dependendo da carga de trabalho. A quantidade de memória acessível é semelhante a da memória convencional.

1**/3gb** é um parâmetro de inicialização do sistema operacional. Para obter mais informações, visite a MSDN Library.

2 WOW64 (Windows on Windows 64) é um modo em que o SQL Server de 32 bits é executado em um sistema operacional de 64 bits. Para obter mais informações, visite a MSDN Library.

3 Observe que sp_configureopção awe enabled, está presente no SQL Server de 64 bits, mas é ignorada. Ela está sujeita a remoção em versões posteriores ou service packs do SQL Server de 64 bits.

4 Se as páginas bloqueadas no privilégio de memória forem concedidas (em 32 bits para suporte AWE ou em 64 bits próprios), também é recomendável a definição da memória máxima do servidor. Para obter mais informações, consulte Opções de memória do servidor.