Tenho uma tabela de quase um milhão de linhas com duas colunas de datatype varbinary
. Essas duas colunas armazenam dados binários que fazem o banco de dados crescer para 1 TB.
Como esse banco de dados também é restaurado em outros ambientes de controle de qualidade e em um ambiente de desenvolvimento, agora temos a tarefa de recuperar o máximo de espaço possível para economizar custos.
Após envolver o fornecedor, eles informaram que essas duas colunas podem ser descartadas, pois não estão mais em uso. A escrita do aplicativo para essas duas colunas foi modificada de acordo.
Eu segui duas opções para abordar a situação no meu ambiente de desenvolvimento, mas preciso de ajuda sobre a abordagem correta.
Opção 1
- Solte as duas colunas binárias
- Executar
DBCC CLEANTABLE
- Esta etapa levou quase 24 horas. Tive que pará-la porque não terei tanto tempo no ambiente de produção. - Encolher o sistema de arquivos - Estou um pouco relutante em fazer isso por causa da fragmentação.
Fiquei preso no número 2 acima e então tentei a segunda opção abaixo.
Opção 2
- Solte as duas colunas binárias
- Crie uma nova tabela e copie os dados usando o SSIS - Esta operação levou quase 12 horas para ser concluída (não terei tanto tempo em produção)
- Crie um sistema de arquivos diferente e mova todas as tabelas e outros objetos para este novo sistema de arquivos de tabela, exceto a tabela antiga em questão, usando o
CREATE INDEX…WITH DROP_EXISTING = ON, ONLINE = ON
comando - Solte a tabela antiga no sistema de arquivos primário
- Encolher o sistema de arquivos primário - Espero que isso encolha mais rápido, pois não há muitos objetos nele.
O item 2 levou quase 12 horas para ser concluído. Alguém conhece uma abordagem melhor para se livrar dessas duas colunas e recuperar o espaço?
O ambiente de produção tem AOAG (Always On), o que significa que preciso estar em recuperação total.
O uso DBCC CLEANTABLE
demorou muito e meu log estava crescendo. Tive que parar para tentar a opção 2. Depois de correr por mais de 24 horas, parei. Demorou muito para finalmente parar. Foi nesse ponto que pensei que DBCC CLEANTABLE
não era uma boa opção para mim.