Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:SQL Server para Windows
A extensão do pool de buffers integra o armazenamento SSD ao pool de buffers do Mecanismo de Banco de Dados para melhorar o desempenho do banco de dados sem incorrer em altos custos com memória adicional.
A extensão do pool de buffers não está disponível em todas as edições do SQL Server. Para obter mais informações, consulte Edições e recursos com suporte do SQL Server 2025.
Benefícios da extensão do pool de buffers
Como as operações de E/S de disco podem levar um tempo relativamente longo para serem concluídas, elas são um gargalo de desempenho em muitas cargas de trabalho.
A abordagem típica para reduzir a E/S do disco é adicionar mais memória para uso como um cache de dados. Embora útil, a desvantagem dessa abordagem é o alto custo de memória.
O recurso de extensão do buffer pool estende o cache do buffer pool com armazenamento não volátil, como unidades SSD locais. Com essa extensão, o pool de buffers pode acomodar um conjunto de trabalho de banco de dados maior, substituindo uma parte significativa da E/S remota mais lenta pelo E/S do SSD local mais rápido. Devido à latência mais baixa e ao melhor desempenho de E/S de SSDs, a extensão do pool de buffers pode melhorar o desempenho, especialmente com os sistemas de E/S remotos mais lentos.
A lista a seguir descreve os benefícios do recurso de extensão do pool de buffers.
- Aumento da taxa de transferência de E/S
- Redução da latência de E/S
- Aumento da taxa de transferência de transações
- Melhoria do desempenho de leitura com um pool de buffers híbrido maior
- Uma arquitetura de cache que pode se beneficiar das unidades de memória de baixo custo presentes e futuras
Conceitos de extensão do pool de buffers
Os termos a seguir são aplicáveis ao recurso de extensão do pool de buffers.
| Prazo | Descrição |
|---|---|
| Buffer | No Mecanismo de Banco de Dados, um buffer é uma página de 8 KB na memória, do mesmo tamanho de uma página de dados ou índice. Portanto, o cache do buffer é dividido em páginas de 8 KB. Uma página permanece no cache de buffer até que o gerenciador de buffers precise da área de buffer para ler mais dados. Os dados serão gravados em disco somente se forem modificados. Essas páginas modificadas na memória são conhecidas como páginas sujas. Uma página é limpa quando é equivalente à imagem do banco de dados no disco. Os dados podem ser modificados no cache do buffer várias vezes antes de serem gravados no disco. |
| Pool de buffers | Também chamado cache de buffer. Todos os bancos de dados usam o pool de buffers como um recurso global para suas páginas de dados armazenadas em cache. O processo de inicialização ou sp_configure reconfigura dinamicamente a instância Mecanismo de Banco de Dados para determinar o tamanho máximo e mínimo do cache do pool de buffers. Esse tamanho determina o número máximo de páginas que uma instância pode armazenar em cache no pool de buffers. A pressão de memória externa pode reduzir o tamanho do pool de buffers e limitar a memória que a extensão do pool de buffers pode armazenar em cache. |
| Checkpoint | Um ponto de verificação cria um bom ponto conhecido a partir do qual o Mecanismo de Banco de Dados pode começar a aplicar as alterações contidas no log de transações durante a recuperação após uma pane ou um desligamento inesperado. Um ponto de verificação grava as páginas sujas e as informações de log de transações da memória para o disco. Para obter mais informações, consulte Pontos de verificação de banco de dados (SQL Server). |
Arquitetura de extensão do pool de buffers
Usando a extensão do pool de buffers, você pode usar o armazenamento SSD como uma extensão para o subsistema de memória, em vez de uma parte do subsistema de disco. O arquivo de extensão do pool de buffers permite que o gerenciador de pool de buffers use tanto a DRAM quanto a memória flash NAND para manter um pool de buffers muito maior de páginas em SSDs.
Essa arquitetura cria uma hierarquia de cache de vários níveis com o nível 1 (L1) como o DRAM e o nível 2 (L2) como o arquivo de extensão do pool de buffers no SSD. Somente páginas limpas são gravadas no cache L2, o que ajuda a manter a segurança dos dados. O gerenciador de buffer manipula a movimentação de páginas limpas entre os caches L1 e L2.
A ilustração a seguir fornece uma visão geral de arquitetura de alto nível do pool de buffers em relação a outros componentes Mecanismo de Banco de Dados.
Ao habilitar a extensão do pool de buffers, especifique o tamanho e o caminho do arquivo de cache do pool de buffers no SSD. Esse arquivo é uma extensão contígua de armazenamento no SSD e é configurado estaticamente durante a inicialização da instância de Mecanismo de Banco de Dados. Você só pode alterar os parâmetros de configuração de arquivo quando o recurso de extensão do pool de buffers estiver desabilitado. Quando você desabilitar a extensão do pool de buffers, o sistema remove todas as configurações relacionadas do Registro. O sistema exclui o arquivo de extensão do pool de buffers durante o desligamento do Mecanismo de Banco de Dados.
Configuração da extensão do pool de buffers
Use ALTER SERVER CONFIGURATION para configurar a extensão do pool de buffers.
O sistema considera a memória física disponível para a instância de Mecanismo de Banco de Dados na inicialização para impor o tamanho mínimo e máximo da extensão do pool de buffers.
Tamanho máximo
O tamanho máximo da extensão do pool de buffers depende da edição SQL Server e difere para máquinas físicas e virtuais.
Se você configurar um tamanho que exceda o máximo, o Mecanismo de Banco de Dados retornará o erro 864 e não habilitará a extensão do pool de buffers.
as edições SQL Server Enterprise, Enterprise Developer e Developer dão suporte a até 32 vezes a memória física.
As edições Standard e Standard Developer do SQL Server em máquinas físicas oferecem suporte a até 4 vezes a memória física.
Até um máximo de 512 GB em SQL Server 2022 (16.x) e versões anteriores.
Até um máximo de 1 TB em SQL Server 2025 (17.x) e versões posteriores.
As edições Standard e Standard Developer do SQL Server em máquinas virtuais oferecem suporte a até 16 vezes a memória física.
Para obter mais informações, consulte Edições e recursos com suporte do SQL Server 2025.
Tamanho mínimo
O tamanho da extensão do pool de buffers deve ser maior que o menor entre os valores de memória física e memória máxima do servidor (MB). Se o tamanho configurado for menor que esse mínimo, o Mecanismo de Banco de Dados gerará o erro 868. Se o tamanho configurado for menor que esse mínimo na inicialização da instância, o erro 861 será registrado e a extensão do pool de buffers não estará habilitada.
Comportamento de alteração de configuração
Você pode aumentar max server memory (MB) para um valor maior que o tamanho da extensão do pool de buffers enquanto a extensão está habilitada. O Mecanismo de Banco de Dados registra uma mensagem informativa (erro 5866) e aplica a alteração. No entanto, como o novo valor viola o requisito de tamanho mínimo, a extensão do pool de buffers será desabilitada na próxima vez que a instância for reiniciada.
Se você habilitar a extensão do pool de buffers com um tamanho abaixo max server memory (MB), a operação falhará com o erro 868.
Práticas recomendadas para extensão do pool de buffer
Considere as melhores práticas a seguir:
- Depois de habilitar a extensão do pool de buffers pela primeira vez, reinicie a instância Mecanismo de Banco de Dados para obter os benefícios máximos de desempenho.
- Defina a extensão do pool de buffers para que a taxa entre o tamanho da memória física e o tamanho da extensão do pool de buffers seja 1:16 ou menor. Uma taxa menor no intervalo de 1:4 a 1:8 pode ser ideal. Para obter informações sobre como definir a opção
max server memory (MB), consulte as opções de configuração de memória do servidor. - Teste a extensão do pool de buffers completamente antes de implementá-la em um ambiente de produção. Uma vez em produção, evite fazer alterações de configuração no arquivo ou desativar o recurso. Essas atividades podem ter um efeito negativo no desempenho do servidor porque o pool de buffers é significativamente reduzido em tamanho quando o recurso é desabilitado. Quando desabilitada, a memória usada para dar suporte ao recurso não será recuperada até que a instância do SQL Server seja reiniciada. No entanto, se o recurso estiver habilitado novamente, a memória será reutilizada sem reiniciar a instância.
Monitorar a extensão do pool de buffers
Você pode usar as exibições de gerenciamento dinâmico a seguir para exibir a configuração da extensão do pool de buffers e informações de retorno sobre as páginas de dados na extensão.
Os contadores de desempenho estão disponíveis no objeto SQL Server, Buffer Manager para monitorar as páginas de dados no arquivo de extensão do pool de buffers. Para obter mais informações, consulte SQL Server, objeto do Gerenciador de Buffers.
Os eventos estendidos a seguir estão disponíveis para monitorar em profundidade a extensão do pool de buffers.
| Acontecimento | Descrição |
|---|---|
buffer_pool_extension_pages_written |
É acionado quando uma página ou um grupo de páginas é removido do pool de buffers e gravado no arquivo de extensão do pool de buffers. |
buffer_pool_extension_pages_read |
É acionado quando uma página é lida do arquivo de extensão do pool de buffers para o pool de buffers. |
buffer_pool_extension_pages_evicted |
É acionado quando uma página é removida do arquivo de extensão do pool de buffers. |
buffer_pool_eviction_thresholds_recalculated |
É acionado quando os limiares de remoção são recalculados. |