Eu tenho algumas tabelas muito grandes no meu banco de dados, mas uma parte substancial desses dados é "antiga".
Devido a circunstâncias fora do meu controle, não tenho permissão para remover esses dados "antigos". A outra limitação é que não consigo modificar o banco de dados, o que significa adicionar grupos de arquivos a ele. Do jeito que as coisas estão agora, tudo reside no PRIMARY
grupo de arquivos.
Eu estava pensando em particionar essas tabelas em algumas partições, como "novo", "antigo", "arquivado" e similares. Eu tenho uma coluna "status" que gostaria de usar para esse fim.
Dado o cenário descrito e as limitações, fiquei pensando se o particionamento faz algum sentido aqui. Em outras palavras, se minha tabela for particionada dessa maneira, mas todas as partições estiverem no mesmo grupo de arquivos, o SQL Server será inteligente o suficiente para encontrar a área especial no arquivo subjacente onde residem meus "novos" dados e não tocar no área com dados "antigos"?
Em outras palavras, se, digamos, 80% dos meus dados são "antigos". O SQL Server tem um mecanismo para evitar acessar 100% dos arquivos subjacentes e acessar apenas 20% que contém dados "novos" (supondo, é claro, que eu especifique minha coluna de particionamento na WHERE
cláusula das consultas).
Acho que, para responder a isso, seria necessário entender como o particionamento é implementado internamente. Agradeço qualquer indicação.