Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Consequência física do uso do Shrink

Bom dia pessoal!! Sobre o Shrink, para mim não ficou muito claro o que fisicamente ele faz? Não entendi o que ele faz no banco de dados que como consequência reduz o espaço ocupado. Alguém sabe?

Grande abraço!!

2 respostas
solução!

opa bom dia victor beleza?

O shrink vai apagar o espaço nao usado pelo database.

Por exemplo, vamos dizer que voce tem um banco de 1GB. derrepente alguem faz uma importação de mais 1GB de dados. logo seu banco tera 2GB e dados. entao eu digo " nao precisamos mais disso " e apago essa tabela de 1GB e seu banco volta a ter 1GB , certo?

Errado. O SQL trabalha com um arquivo que chama .MDF. dentro dele esta todos os seus dados, e ele automaticamente apenas cresce. esse 1GB a mais vai ficar la vazio. Logo o seu .MDF terá 2GB, porém o banco de dados terá 1GB com 1GB livre. ASsim, se depois voce por exemplo precisar importar algo de 1GB de novo, o banco nao vai precisar fazer toda a operação de crescimento, pois ele ja esta em 2GB. quando voce roda o shrink, voce pega esse 1GB que esta vazio e elimina.

Nao é muito recomendado ficar rodando shrink, pois quando o .MDF cresce, ele usa muito IO, e provavelmente ele vai precisar crescer de novo, entao a gente ja deixa ele la com 2GB.

uma dica tambem é quando se usa BACKUP DATABASE....WITH COMPRESSION, o que esse WITH COMPRESSION faz é eliminar esse espaço vazio para fazer um backup menor.

Muito obrigado pela resposta super completa, Rafael!!!!