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.
fonte
A resposta é sim". Ele possui um mecanismo em qualquer consulta que filtre as entradas com base na lógica usada para definir as partições.
Você precisa ter o filtro apropriado ou todas as partições serão verificadas. Isso normalmente envolveria ter filtros de data (no seu caso) para escolher a partição.
Uma maneira de impor isso é ter visualizações que acessam apenas uma partição, com a lógica correta na visualização.
fonte