Início > Microsoft, SQL Server 2012 > Limpando o cache do SQL

Limpando o cache do SQL

Todo mundo que eu conheci até hoje reinicia a instância para esvaziar o buffer que o SQL faz em memória. Veja como fazer isso sem reiniciar a instância, serviços ou servidor.

Devo alertá-los que esta prática, apesar de não gerar a indisponibilidade dos outros métodos, não é recomendada em ambientes de produção (assim como reiniciar a instância, serviços, servidor)  pois haverá impacto significativo na performance do SQL até que o cache se forme novamente na memória.

Para evitar perda de dados, vamos executar umCHECKPOINT antes. Quando o SQL vai alterar uma página de dados, uma cópia da página que está no disco é enviada para a memória e só então esta cópia é alterada (e continua na memória). Em determinados períodos o SQL faz um CHECKPOINT automático, gravando esta página alterada em disco, no lugar da página original. Portanto, vamos executar o CHECKPOINT para garantir que todas as páginas alteradas (também chamadas de dirty pages) serão gravadas em disco, antes de esvaziarmos o cache.

Imediatamente após o CHECKPOINT, fazemos a limpeza do cache em memória com o comando DBCC DROPCLEANBUFFERS (DROP CLEAN BUFFERS). A query fica assim:

USE AdventureWorks2008R2
GO
CHECKPOINT
GO
DBCC DROPCLEANBUFFERS;
GO

O resultado é o da imagem abaixo:

Agora verifique o processo do SQL, já com a memória liberada para o Sistema Operacional.

  1. Nenhum comentário ainda.
  1. No trackbacks yet.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: