O banco de dados tem quase 55 GB de tamanho. Esse banco de dados nunca deveria ter crescido para esse tamanho, pois alguns dos trabalhos de manutenção não estavam em execução.
Excluí quase 30 GB de dados. Agora, o tamanho do banco de dados é de quase 45 GB e o espaço disponível é de quase 20 GB.
O que mostra que o tamanho real do banco de dados agora é de quase 25 GB e há algum espaço não utilizado que precisa ser devolvido ao sistema operacional.
Executei comandos DBCC para banco de dados e arquivos individuais (8 deles). E só consegui liberar alguns GBs.
Os comandos que usei são os seguintes
DBCC SHRINKDATABASE (N'MyDB');
GO
DBCC SHRINKFILE('Filename1', 0 , TRUNCATEONLY)
GO
DBCC SHRINKFILE('Filename2', 0 , TRUNCATEONLY)
GO
and so on....
Mas isso parece não afetar o tamanho do banco de dados e o espaço disponível.
Eu li um artigo que sugeria a reconstrução de índices e a redução do banco de dados resolveria esse problema.
Mas, depois de reduzir o banco de dados, teria que reconstruir os índices de qualquer maneira, pois o encolhimento do banco de dados teria feito uma bagunça nos índices.
Meu requisito é deixar apenas 10% de espaço para o banco de dados crescer e liberar o espaço não utilizado. Em seguida, pretendo reconstruir os índices e atualizar as estatísticas depois disso.
Qual seria a melhor abordagem para este problema. Quaisquer sugestões ou indicações na direção certa são muito apreciadas.
Agradeço antecipadamente
Existe uma razão específica que você está especificando
TRUNCATEONLY
? De acordo com a documentação emDBCC SHRINKFILE
:Se esse não for o comportamento pretendido que você estava procurando (o que não parece ser), tente sem essa opção definida.
Além disso, existem outros fatores que impedem a redução do arquivo de banco de dados, como dados BLOB
text
`ntext\
image` . Portanto, vale a pena investigar a possibilidade da existência de dados com esses tipos de dados.