Blog Archives

O que LazyWriter e Checkpoint tem em comum?

Bom pessoal,

Falar de assuntos internos do SQL Server é sempre complicado, porem acho extremamente importante falar desses dois processos internos do SQL Server e no que eles são tao parecidos, porem é claro possuem suas particularidades. Para entendermos melhor o que cada um faz vamos colocar uma breve descriçao de cada processo.

Checkpoint

Checkpoint escreve as paginas de dados sujas (modificadas) que estavam em memoria para o disco. O principal proposito deste processo é reduzir o tempo de recuperacao da base de dados, entao quando voce ve no errorlog: “20 transactions rolled forward in database ‘master'” é o Checkpoint realizando seu trabalho de sincronizar os arquivos LDF e MDF, que chamamos de fase UNDO e REDO.

LazyWriter

Periodicamente examina o data cache e escreve as paginas sujas (modificadas) no disco. Uma vez escrita a pagina então volta para a lista de paginas disponíveis, que manterão um certo nível de buffers livres para outras threads. O processo do LazyWriter seleciona as paginas de dados a partir de um algoritmo que marca as paginas que nao foram modificadas e/ou referenciadas por um periodo de tempo. 

Mas o que os dois possuem em comum?

Vimos que o papel dos dois processos é liberar espaço no data cache para a entrada de novos dados, retirando aqueles que foram modificados, ou que por um período de tempo não foram referenciados. Mas a grande jogada desses dois processos é que o LazyWriter que fica na camada do SQLOS atua somente quando existe uma pressão de memoria na instancia do SQL Server, fora esse caso em especifico o Checkpoint é o responsavel por realizar o gerenciamento das paginas de dados no Data Cache.

Pessoal, como viram esse post foi não teve nenhuma parte  pratica.. mas espero que tenha passado de uma maneira simples como funcionam esses dois processos do SQL Server.

Att,
Marcos Freccia
[MCTS|MCITP|MCT SQL Server 2008]