Gerenciamento de memória dinâmica

O comportamento de gerenciamento de memória padrão do Microsoft Mecanismo de banco de dados do SQL Server é adquirir a quantidade de memória necessária sem provocar escassez de memória no sistema. O Mecanismo de Banco de Dados faz isto usando as APIs de notificação de memória no Microsoft Windows.

O espaço de endereço virtual do SQL Server pode ser dividido em duas regiões distintas: espaço ocupado pelo pool de buffers e o restante. Se o mecanismo de AWE for habilitado, o pool de buffers poderá residir na memória mapeada AWE, fornecendo espaço adicional para páginas de banco de dados.

O pool de buffers serve como fonte de alocação de memória primária do SQL Server. Os componentes externos que residem no processo do SQL Server, como objetos COM, e que não reconhecem os recursos de gerenciamento de memória do SQL Server usam a memória fora do espaço de endereço virtual ocupado pelo pool de buffers.

Quando o SQL Server é iniciado, ele computa o tamanho do espaço de endereço virtual do pool de buffers baseado em vários parâmetros, como quantidade de memória física no sistema, número de threads de servidor e vários parâmetros de inicialização. O SQL Server reserva a quantidade computada do seu espaço de endereço virtual de processo do pool de buffers, mas adquire (confirma) somente a quantidade exigida da memória física para a carga atual.

A instância continua adquirindo memória conforme necessário para atender a carga de trabalho. Como mais usuários conectam e executam consultas, o SQL Server adquire a memória física adicional por demanda. Uma instância do SQL Server continua adquirindo memória física até alcançar o destino da alocação da max server memory ou o Windows indicar que não há excesso de memória livre; ela libera memória quando tem mais que a configuração da min server memory e o Windows indica que há uma escassez de memória livre.

Conforme são iniciados outros aplicativos em um computador que está executando uma instância do SQL Server, eles consomem memória e a quantidade de memória física livre reduz o destino do SQL Server. A instância do SQL Server ajusta seu consumo de memória. Se outro aplicativo for interrompido e for disponibilizada mais memória, a instância de SQL Server aumenta o tamanho de sua alocação de memória. O SQL Server pode liberar e adquirir vários megabytes de memória por segundo, permitindo ajustar rapidamente as alterações de alocação de memória.