Background Task: Checkpoint Process

Checkpoint process é uma tarefa realizada periodicamente em todos os bancos de dados para manter as informações sincronizadas entre os arquivos de Dados e Log. É importante lembrar que as escritas de dados são realizadas de forma assíncrona, ou seja, os comandos de UPDATE, INSERT e DELETE alteram os dados em memória (apesar de manter os registros em Log). Posteriormente, os dados são descarregados para disco.

Muitas pessoas confundem o Checkpoint process com o Lazy Writer, que também é um processo rodando em background para escrita de dados em disco. Lazy Writer atua somente em caso de falta de memória para toda a instância SQL, sendo considerado uma tarefa que auxilia no controle do Buffer Pool. Dependendo da quantidade de memória no servidor, o Lazy Writer pode ficar ocioso por um longo tempo.

O Checkpoint process está relacionado com a recuperação rápida do banco de dados após o reboot, que corresponde ao Database Recovery. É responsabilidade do checkpoint garantir que os arquivos de Dados e Log estão sincronizadas. As informações antigas de logs, então, não precisam ser utilizadas e podem ser apagadas. Muitas pessoas tem problema de falta de espaço em disco no arquivo de log. O processo de checkpoint é essencial para liberar as informações no Log, permitindo que o arquivo seja truncado e o espaço seja reutilizado.

 

Referências

SQL Books Online: Checkpoints and the Active Portion of the Log
https://msdn.microsoft.com/en-us/library/ms189573.aspx

Paul Randal: How do checkpoints work and what gets logged
https://www.sqlskills.com/BLOGS/PAUL/post/How-do-checkpoints-work.aspx