terça-feira, 13 de julho de 2021

🧹Como limpar o cache de consulta do SQL Server?

 #### 🧹Como limpar o cache de consulta do SQL Server? ####




O SQL para otimizar a performance de  consulta utiliza um recurso chamado SQL Server Query Optimizer. É fundamental esta tarefa, pois sem ela os recursos do servidor seriam seriamente estressados, ocasionando lentidão, altos consumos de memoria e ate mesmo paradas de serviços. 

Porém é fundamental a limpeza do cache do servidor SQL, para que não haja um retorno falso na consulta devido o mecanismo de cache. 

⚠️Atenção: A limpeza de cache deve ser utilizada de modo controlado, pois em um ambiente de produção  pode ocasionar queda de performance, devido a função Cache de plano, que armazena consultas que já foram executadas, com isso o SQL tem a possibilidade de reutilizadas estas consultas para assim otimizar a performance.  

Porem deve-se ter muito cuidado, pois se uma determinada consulta mal elaborada pode ocasionar diversos erros. 

Ex.: 

Em um ambiente de prestação de serviço, o sistema utiliza diversas consultas de geração de relatório, sendo que estas consultas fazem uso do NOLOCK , como todos sabem o  NOLOCK  trás os dados em movimentos. 

Em uma destas consultas veio a trazer dados que já não eram mais reais. Logo o relatório não foi gerado, e com ele veio as informação de erro por e-mail:  


Como visto na imagem acima o erro não foi muito específicos, Vários foram os teste realizados antes de qualquer atitude drásticas. Por fim sobram duas opções, a limpeza de cache e boot do servidor. ambos métodos críticos. Foi optado a primeira opçao ( Limpeza de Cache ), menos agressiva e mais pontual em ambiente onde a instancia tem varias Database. 

Vamos ao processo: 

################################

Escolha um horário adequado, fora do horário de pico e certifique que seu backup esta Ok. 

⚠️Atenção: NÃO utilizaremos o comando abaixo, pois não queremos que os arquivos de cache buffer e modificadas sejam escritos no disco. 

CHECKPOINT

GO

################################

1- Abra o SSMS 


2-  Click em New Query

 

3-  Digite o Comando abaixo: 

USE <Nome do Banco de Dados>;

GO

DBCC DROPCLEANBUFFERS;

GO


Pronto, problema resolvido, removida todos os buffers do cache que contêm os dados já movidos para o disco. 

Definições da Microsoft para comando 👉 DBCC DROPCLEANBUFFERS


Deixe seu comentário, duvida, opinião e sugestões aqui em baixo 👇. Assim você ajuda o blog e ajuda outros profissionais a compartilhar conhecimento. 💻

Nenhum comentário:

Postar um comentário