Eu tenho um banco de dados MS SQL Server 2000 de 9 GB que tem cerca de 1 GB de dados reais nele. Está em um host compartilhado. Preciso reduzir o tamanho para evitar o pagamento de taxas extremas de hospedagem.
Eu tentei usar DBCC SHRINKDATABASE e DBCC SHRINKFILE . Ambos não reduzem o banco de dados. ( E sim, eu sei que eu não deveria realmente usar eles. )
DBCC SHRINKDATABASE (nome_bd) retorna:
DbId FIleId CurrentSize MinimumSize UsedPages EstimatedPages
23 1 1114808 128 1113824 1113824
23 2 63 63 56 56
DBCC SHRINKFILE (1) retorna:
DbId FIleId CurrentSize MinimumSize UsedPages EstimatedPages
23 1 1114808 128 1113824 1113824
Na página de propriedades gerais, o tamanho é listado como 8.709 MB. O espaço disponível está listado como 0 MB. Na página de propriedades dos arquivos, o arquivo principal é listado com um tamanho inicial de 8.652 MB.
DBCC SHOWCONTIG (bigTable) retorna:
- Pages Scanned................................: 807
- Extents Scanned..............................: 103
- Extent Switches..............................: 102
- Avg. Pages per Extent........................: 7.8
- Scan Density [Best Count:Actual Count].......: 98.06% [101:103]
- Logical Scan Fragmentation ..................: 0.37%
- Extent Scan Fragmentation ...................: 1.94%
- Avg. Bytes Free per Page.....................: 68.5
- Avg. Page Density (full).....................: 99.15%
Rodando sp_spaceused , eu recebo isto:
databaseize: 9131.94 MB
espaço não alocado: 377,95 MB
Em execução sp_spaceusused bigTable , obtenho isto:
Linhas
: 56,095
Reservado: 6,419,736 KB
Dados: 252,656 KB
Index_size: 4,640 KB
Não utilizado: 6,162,440 KB
Rodando sp_spaceusused bigTable2 , eu recebo isto:
Filas: 2,791
Reservado: 2,362,744 KB
Dados: 114,232 KB
Index_size: 200 KB
Não utilizado: 2,248,312 KB
Todas as outras tabelas são pequenas.
Pedi ao meu host para fazer backup do banco de dados, descartar e recriá-lo com um tamanho inicial mais baixo e restaurá-lo. Eles tentaram isso, e essa foi a resposta deles: "Nós seguimos as etapas, mas isso não corrigiu o problema, mas o SQL Server aumentou o tamanho do banco de dados e seu tamanho atual é superior a 9 GB." (Foi 7GB antes que eles tentaram isso.)
É possível que meu banco de dados precise dos 8 GB de espaço não utilizado? Assumindo que isso não acontece, que outras opções eu tenho para encolher?
Consegui fazer o download de uma cópia do meu host para trabalhar no meu computador local. Eu instalei a versão de avaliação do SQL Server 2008 e anexei o banco de dados. Eu corri ALTER INDEX ALL ALL NO BIGTABLE REORGANIZE, ALTER INDEX ALL NO BIGTABLE REBUILD, e DBCC SHRINKDATABASE. Nada mudou. Ainda estou recebendo as mesmas respostas básicas dos vários comandos listados acima.