Temos a necessidade de encaixar um banco de dados em 4GB para poder utilizar o SQL Server Express Edition. Comecei a partir de um banco de dados de 7 GB, encontrei muitos registros desnecessários e os excluí. Após a redução, o tamanho do banco de dados é de 4,6 GB e 748 MB são livres (de acordo com as propriedades do banco de dados) .
Porém, quando executo exec sp_spaceused
, tenho resultados interessantes:
DatabaseName Database_size unallocation space
xxxxxx 4726.50 MB 765.42 MB
Reserved Data index_size unused
3899472 KB 1608776 KB 1448400 KB 842296 KB
Alguma ideia, como posso liberar pelo menos parte desse espaço não utilizado? Também conheço a mesa, que a ocupou.
Atualização: vale a pena tentar reconstruir os índices da tabela?
ALTER INDEX ALL ON Production.Product REBUILD
Após a recriação do índice, usando este comando:
e então eu executo o comando SHRINK novamente - termino com o banco de dados 2.5G.
Primeiro, defina o modo de recuperação como simples, faça backup e reduza todos os arquivos (dados e logs) separadamente; use a opção 'mover páginas para o início do banco de dados' (ou exatamente como isso é nomeado) para reduzir.
Então você pode considerar a desfragmentação do índice, que nos ajudou em circunstâncias semelhantes.
Se você já reduziu seu banco de dados,
DBCC SHRINKDATABASE TRUNCATEONLY
tente.Referência .