Eu tenho um banco de dados SQL Server 2008 R2 de 1,2 TB que está mais de 50% vazio, porque migrei muitas funcionalidades para o PostgreSql. O banco de dados ainda está em uso e ainda está crescendo um pouco, mas não acho que crescerá para usar todos os 1,2 TB nos próximos 3 a 5 anos.
No ritmo atual de crescimento, não vamos consumir 1,2 Tb em mais de 14 anos. Mais especificamente, continuamos migrando a funcionalidade para o PostgreSql sempre que precisamos fazer mudanças sérias. Em um ambiente ágil muito dinâmico, isso significa que frequentemente migramos dados para fora desse banco de dados do SQL Server. Portanto, é provável que esse banco de dados cresça ainda mais devagar no futuro: ele está sendo eliminado gradualmente.
Como tal, preferimos usar esse espaço vazio não utilizado para outros bancos de dados e tal - provavelmente não será necessário para o crescimento de tabelas/índices.
Lembro que a regra geral costumava ser "nunca reduza os bancos de dados". Aplica-se neste caso? Atualmente, o servidor está executando o 2008 R2 EE, mas planejamos atualizar para 2012 em breve. Acho que, como essa funcionalidade de redução existe, deve haver casos de uso válidos em que faça sentido reduzir. Caso contrário, por que ele existe?
Podemos nos dar ao luxo de algumas horas de inatividade durante um fim de semana.
Editar: o problema que estamos resolvendo é como eu disse acima: "preferimos usar esse espaço vazio não utilizado para outros bancos de dados". Além disso, preferimos uma solução que não exija investir muito tempo no aprendizado da tecnologia da qual estamos migrando.