Antes de escrever sobre Buffer Pool Extension, nova funcionalidade do SQL Server 2014, preciso fornecer o conhecimento necessário para percebermos os benefícios e cenários indicados de uso deste novo recurso.
Como o SQL Server acessa os dados
O SQL Server sempre lê os dados da memória. Quando o usuário executa um comando SELECT o
SQL Server verifica se a informação já se encontra na memória, se não estiver
acessa o disco e carrega para memória.
Neste momento, as páginas na memória estão idênticas as páginas no disco
recebendo a denominação de “Clean Pages” (Páginas Limpas). Quando o usuário executa um comando de
alteração dos dados no banco, o mesmo processo de levar as páginas para memória
ocorre, sendo alteradas APENAS na memória.
Estas páginas alteradas na memória recebem a denominação de Dirty Pages
(Páginas Sujas).
De tempos em tempos um processo chamado de
“Checkpoint” se encarrega de atualizar as páginas no disco a partir da Páginas
Sujas (Dirty Pages) da memória.
Fica clara a importância de ter uma boa quantidade de
memória para o SQL Server, não é? Quando
temos menos memória que o necessário para manter as páginas mais acessadas em
memória, o SQL Server é obrigado a acessar constantemente o disco para atender
as requisições dos usuários, com consequente perda de desempenho.
Buffer Pool Extension (BPE)
Já que memória é tão importante para o SQL Server, e
com o surgimento dos discos SSD (Solid-state drive), o SQL Server 2014 nos dá a
possibilidade de expandir o Buffer de memória para os discos SSD. Claro que aumentar a memória RAM fornece um
resultado muito melhor, mas estender o Buffer para discos SSD é melhor que
trabalhar com pouca RAM! Veja gráfico
comparativo abaixo:
Retirado do artigo em:
Existem algumas restrições quanto ao uso do BPE:
·
Apenas Paginas Limpas (Clean Pages) podem estar no
BPE, Páginas Sujas só na memória RAM.
·
BPE só SQL Server Enterprise, Standard ou Business
Intelligence, todos 64 bits.
·
Necessária permissão ALTER SERVER STATE para habilitar
BPE.
·
Limite máximo de 32 vezes o valor do valor de
MaxServerMemory, sendo o indicado pela Microsoft entre 4 a 8 vezes.
Habilitando BPE
Para habilitar o Buffer Pool Extension (BPE) basta
utilizar o script abaixo, lembrando de habilitar somente em volumes SSD.
USE Master
go
ALTER SERVER
CONFIGURATION
SET BUFFER POOL EXTENSION ON
(FILENAME = 'S:\MyCache.bpe', SIZE = 10GB)
Para desabilitar BPE:
ALTER SERVER
CONFIGURATION
SET BUFFER POOL EXTENSION OFF
As visões de sistema abaixo retornam informações do
Buffer Pool Extension, quando habilitado:
SELECT * FROM sys.dm_os_buffer_pool_extension_configuration
SELECT * FROM sys.dm_os_buffer_descriptors
Até o próximo post.
Saudações Tricolores,
Landry
Nenhum comentário:
Postar um comentário