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.

image

Em servidores de arquitetura NUMA, uma instância SQL Server possui um Lazy writer para cada Memory Node.