Background Task: Lazy Writer
Lazy writer é o processo responsável por escrever os dados em disco de forma assíncrona, além de desempenhar um papel importante no gerenciamento de memória.
- Escrita assíncrona de dados?
Sim! Os comandos UPDATE/INSERT/DELETE são gravados no Transaction Log de forma síncrona, mas realizam as modificações dos dados em memória. Nesse momento, o comando finaliza e o controle retorna ao usuário. Em background, o processo de lazy writer transfere as informações para os arquivos de Dados.
- Qual o papel do Lazy writer no gerenciamento de memória?
Durante a execução do Lazy writer, o tamanho do Buffer Pool (também conhecido como Data Cache) é recalculado e libera-se memória se necessário.
Apenas como curiosidade, o Lazy writer é um processo de sistema e pode ser observado através da query:
SELECT*FROMsys.dm_exec_requests
WHEREcommand ='LAZY WRITER'
Ao rodar o SELECT anterior na minha máquina, observamos que o lazy writer roda como SessionID 4 em background.
Em servidores de arquitetura NUMA, uma instância SQL Server possui um Lazy writer para cada Memory Node.