terça-feira, 6 de março de 2018

Como reduzir o TempDB sem reiniciar o SQL Server ...

Durante atendimento de alguns clientes, fui encarregado desta tarefa. Quando solicitado rotinas de shrink database, questionamos por qual a razão eles gostariam que sempre esteja um dba acompanhando. O Shrink TempDB é uma tarefa omnipresente e elas não precisam de ajuda ou de nenhum acompanhamento. No entanto, sempre foram bastante inflexíveis que gostariam de uma presença em plantão durante a chamada.



Logo no primeiro momento percebemos qual era o problema. Eles não conseguiram encolher seu TempDB mesmo que eles estivessem executando o comando SHRINKFILE por diversas vezes.

Antes de todos pular e começar a falar, que não devemos reduzir o banco de dados, pois isso é ruim para o sistema e desempenho, Eu Concordo.

Agora, deixe-nos ver como podemos encolher o banco de dados TempDB.

1
2
3
4
5
6
CHECKPOINT
GO
DBCC FREEPROCCACHE
GO
DBCC SHRINKFILE (TEMPDB, 1024)
GO

     

Quando os usuários estavam executando apenas o Shrink File, eles não conseguiram reduzir o banco de dados.No entanto, quando recorremos ao DROPCLEANBUFFERS funcionou bem. No entanto, note que DROPCLEANBUFFERS irá remover todo o cache de PROCEDURES, o que pode diminuir a velocidade de alguns sistemas imediatamente, pois eles precisam reconstruir novamente os caches.

Atenção, reduza o seu TempDB SOMENTE se estiver fora do ar ou em situações criticas!

Se você chegar ao ponto em que você necessite reiniciar os serviços para reduzir o database, você pode considerar uma ultima opção e então executar o DBCC FREEPROCCACHE (que irá funcionar como quando você reinicia os serviços, não apenas remove o cache, mas também todas as paginações de dados em cache).


Referências:  Pinal Dave

https://docs.microsoft.com/pt-br/sql/relational-databases/databases/shrink-a-database

https://docs.microsoft.com/pt-br/sql/t-sql/database-console-commands/dbcc-dropcleanbuffers-transact-sql

https://docs.microsoft.com/pt-br/sql/t-sql/database-console-commands/dbcc-freeproccache-transact-sql

Nenhum comentário:

Postar um comentário