Tenha muito cuidado com a redução de execução para arquivos de dados, isso causa a fragmentação do índice por causa do algoritmo que ele usa (eu costumava ter o código quando estava no MS). Esta postagem do blog que eu escrevi contém um script de exemplo que mostra o que quero dizer Auto-shrink - desligue-o! . Embora o título do post do blog seja sobre o auto-shrink, o encolhimento manual de arquivos de dados usa exatamente o mesmo código no SQL Server e, portanto, tem os mesmos problemas.
Se você estiver usando apenas a opção TRUNCATEONLY, como diz Kyle, não fará nenhum movimento de dados nem causará fragmentação.
Se você tiver índices no banco de dados, você tem duas opções:
- Execute a redução e remova a fragmentação do índice posteriormente. Não faça isso usando a reconstrução de índice (como será necessário aumentar novamente o banco de dados para obter espaço para o novo índice). Use o meu antigo DBCC INDEXDEFRAG ou seu substituto ALTER INDEX ... REORGANIZE. Isso só precisa de uma página de dados para funcionar e, portanto, não aumentará o banco de dados novamente.
- Crie outro grupo de arquivos no banco de dados, mova todos os índices para ele usando a sintaxe CREATE INDEX ... WITH DROP_EXISTING e, em seguida, elimine o grupo de arquivos antigo.
Espero que isso ajude!